{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* By: Aditya Vyas\n",
    "* Email: adityavyas17@gmail.com\n",
    "* Reference: Advances in Financial Machine Learning, Chapter-16"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Chapter 16 Machine Learning Asset Allocation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Introduction"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Portfolio optimisation and asset allocation have been important topics in the financial world. Although, the classical Markowitz theory has been successful, it has a lot of limitations in its practical implementations. Optimisation algorithms like CLA involve taking the inverse of covariance matrices which leads to instability for large portfolios - especially if they are highly correlated. This is where the Hierarchical Risk Parity algorithm comes in - it does not deal with inverse of a covariance matrix hence removing the instability of the previous algorithms. \n",
    "\n",
    "This notebook explores the exercises at the back of Chapter-16 in the book \"Advances in Financial Machine Learning\". We will use the portfolio optimisation algorithms in the mlfinlab package to do a comparision of their performance. The questions are restated here in this notebook, with the accompanying code solutions following directly below each question."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numbers\n",
    "import numpy as np\n",
    "import scipy as sc\n",
    "import pandas as pd\n",
    "import random\n",
    "from scipy.cluster.hierarchy import dendrogram, linkage\n",
    "from scipy.spatial.distance import pdist, squareform\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "# Import from mlfinlab\n",
    "from mlfinlab.portfolio_optimization.cla import CLA\n",
    "from mlfinlab.portfolio_optimization.hrp import HierarchicalRiskParity\n",
    "from mlfinlab.portfolio_optimization.mean_variance import MeanVarianceOptimisation\n",
    "\n",
    "# Modified functions for some of the questions\n",
    "from hrp_modified import HierarchicalRiskParityModified\n",
    "from cla_modified import CLAModified\n",
    "from mvo_modified import MeanVarianceOptimisationModified\n",
    "\n",
    "%matplotlib inline\n",
    "np.random.seed(42)\n",
    "pd.set_option('display.float_format', lambda x: '%.5f' % x)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Getting the Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "stock_prices = pd.read_csv('../Sample-Data/stock_prices.csv', parse_dates=True, index_col='Date')\n",
    "stock_prices = stock_prices.dropna(axis=1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>EEM</th>\n",
       "      <th>EWG</th>\n",
       "      <th>TIP</th>\n",
       "      <th>EWJ</th>\n",
       "      <th>EFA</th>\n",
       "      <th>IEF</th>\n",
       "      <th>EWQ</th>\n",
       "      <th>EWU</th>\n",
       "      <th>XLB</th>\n",
       "      <th>XLE</th>\n",
       "      <th>...</th>\n",
       "      <th>XLU</th>\n",
       "      <th>EPP</th>\n",
       "      <th>FXI</th>\n",
       "      <th>VGK</th>\n",
       "      <th>VPL</th>\n",
       "      <th>SPY</th>\n",
       "      <th>TLT</th>\n",
       "      <th>BND</th>\n",
       "      <th>CSJ</th>\n",
       "      <th>DIA</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2008-01-02</th>\n",
       "      <td>49.27333</td>\n",
       "      <td>35.39000</td>\n",
       "      <td>106.64000</td>\n",
       "      <td>52.92000</td>\n",
       "      <td>78.22000</td>\n",
       "      <td>87.63000</td>\n",
       "      <td>37.94000</td>\n",
       "      <td>47.76000</td>\n",
       "      <td>41.30000</td>\n",
       "      <td>79.50000</td>\n",
       "      <td>...</td>\n",
       "      <td>42.09000</td>\n",
       "      <td>51.17333</td>\n",
       "      <td>55.98333</td>\n",
       "      <td>74.53000</td>\n",
       "      <td>67.31000</td>\n",
       "      <td>144.92999</td>\n",
       "      <td>94.38000</td>\n",
       "      <td>77.36000</td>\n",
       "      <td>101.40000</td>\n",
       "      <td>130.63000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008-01-03</th>\n",
       "      <td>49.71667</td>\n",
       "      <td>35.29000</td>\n",
       "      <td>107.00000</td>\n",
       "      <td>53.12000</td>\n",
       "      <td>78.35000</td>\n",
       "      <td>87.81000</td>\n",
       "      <td>37.92000</td>\n",
       "      <td>48.06000</td>\n",
       "      <td>42.05000</td>\n",
       "      <td>80.44000</td>\n",
       "      <td>...</td>\n",
       "      <td>42.03000</td>\n",
       "      <td>51.29333</td>\n",
       "      <td>55.60000</td>\n",
       "      <td>74.80000</td>\n",
       "      <td>67.50000</td>\n",
       "      <td>144.86000</td>\n",
       "      <td>94.25000</td>\n",
       "      <td>77.46000</td>\n",
       "      <td>101.52000</td>\n",
       "      <td>130.74001</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008-01-04</th>\n",
       "      <td>48.22333</td>\n",
       "      <td>34.60000</td>\n",
       "      <td>106.97000</td>\n",
       "      <td>51.76000</td>\n",
       "      <td>76.57000</td>\n",
       "      <td>88.04000</td>\n",
       "      <td>36.99000</td>\n",
       "      <td>46.92000</td>\n",
       "      <td>40.78000</td>\n",
       "      <td>77.50000</td>\n",
       "      <td>...</td>\n",
       "      <td>42.35000</td>\n",
       "      <td>49.85000</td>\n",
       "      <td>54.53667</td>\n",
       "      <td>72.98000</td>\n",
       "      <td>65.77000</td>\n",
       "      <td>141.31000</td>\n",
       "      <td>94.27000</td>\n",
       "      <td>77.55000</td>\n",
       "      <td>101.65000</td>\n",
       "      <td>128.17000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008-01-07</th>\n",
       "      <td>48.57667</td>\n",
       "      <td>34.63000</td>\n",
       "      <td>106.95000</td>\n",
       "      <td>51.44000</td>\n",
       "      <td>76.65000</td>\n",
       "      <td>88.20000</td>\n",
       "      <td>37.26000</td>\n",
       "      <td>47.06000</td>\n",
       "      <td>40.22000</td>\n",
       "      <td>77.20000</td>\n",
       "      <td>...</td>\n",
       "      <td>43.23000</td>\n",
       "      <td>50.41667</td>\n",
       "      <td>56.11667</td>\n",
       "      <td>72.95000</td>\n",
       "      <td>65.65000</td>\n",
       "      <td>141.19000</td>\n",
       "      <td>94.68000</td>\n",
       "      <td>77.57000</td>\n",
       "      <td>101.72000</td>\n",
       "      <td>128.06000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008-01-08</th>\n",
       "      <td>48.20000</td>\n",
       "      <td>34.39000</td>\n",
       "      <td>107.03000</td>\n",
       "      <td>51.32000</td>\n",
       "      <td>76.22000</td>\n",
       "      <td>88.39000</td>\n",
       "      <td>36.97000</td>\n",
       "      <td>46.40000</td>\n",
       "      <td>39.60000</td>\n",
       "      <td>75.85000</td>\n",
       "      <td>...</td>\n",
       "      <td>43.24000</td>\n",
       "      <td>49.56667</td>\n",
       "      <td>55.32667</td>\n",
       "      <td>72.40000</td>\n",
       "      <td>65.36000</td>\n",
       "      <td>138.91000</td>\n",
       "      <td>94.57000</td>\n",
       "      <td>77.65000</td>\n",
       "      <td>101.74000</td>\n",
       "      <td>125.85000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 23 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                EEM      EWG       TIP      EWJ      EFA      IEF      EWQ  \\\n",
       "Date                                                                         \n",
       "2008-01-02 49.27333 35.39000 106.64000 52.92000 78.22000 87.63000 37.94000   \n",
       "2008-01-03 49.71667 35.29000 107.00000 53.12000 78.35000 87.81000 37.92000   \n",
       "2008-01-04 48.22333 34.60000 106.97000 51.76000 76.57000 88.04000 36.99000   \n",
       "2008-01-07 48.57667 34.63000 106.95000 51.44000 76.65000 88.20000 37.26000   \n",
       "2008-01-08 48.20000 34.39000 107.03000 51.32000 76.22000 88.39000 36.97000   \n",
       "\n",
       "                EWU      XLB      XLE  ...      XLU      EPP      FXI  \\\n",
       "Date                                   ...                              \n",
       "2008-01-02 47.76000 41.30000 79.50000  ... 42.09000 51.17333 55.98333   \n",
       "2008-01-03 48.06000 42.05000 80.44000  ... 42.03000 51.29333 55.60000   \n",
       "2008-01-04 46.92000 40.78000 77.50000  ... 42.35000 49.85000 54.53667   \n",
       "2008-01-07 47.06000 40.22000 77.20000  ... 43.23000 50.41667 56.11667   \n",
       "2008-01-08 46.40000 39.60000 75.85000  ... 43.24000 49.56667 55.32667   \n",
       "\n",
       "                VGK      VPL       SPY      TLT      BND       CSJ       DIA  \n",
       "Date                                                                          \n",
       "2008-01-02 74.53000 67.31000 144.92999 94.38000 77.36000 101.40000 130.63000  \n",
       "2008-01-03 74.80000 67.50000 144.86000 94.25000 77.46000 101.52000 130.74001  \n",
       "2008-01-04 72.98000 65.77000 141.31000 94.27000 77.55000 101.65000 128.17000  \n",
       "2008-01-07 72.95000 65.65000 141.19000 94.68000 77.57000 101.72000 128.06000  \n",
       "2008-01-08 72.40000 65.36000 138.91000 94.57000 77.65000 101.74000 125.85000  \n",
       "\n",
       "[5 rows x 23 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_prices.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Question-16.1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Given the PnL series on N investment strategies:\n",
    "### (a) Align them to the average frequency of their bets (e.g., weekly observations for strategies that trade on a weekly basis). Hint: This kind of data alignment is sometimes called “downsampling.”"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Using, the **resample()** function in pandas, we can do the required downsampling. 'W' parameter refers to Weekly resampling"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "stock_prices_downsampled = stock_prices.resample('W').last()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>EEM</th>\n",
       "      <th>EWG</th>\n",
       "      <th>TIP</th>\n",
       "      <th>EWJ</th>\n",
       "      <th>EFA</th>\n",
       "      <th>IEF</th>\n",
       "      <th>EWQ</th>\n",
       "      <th>EWU</th>\n",
       "      <th>XLB</th>\n",
       "      <th>XLE</th>\n",
       "      <th>...</th>\n",
       "      <th>XLU</th>\n",
       "      <th>EPP</th>\n",
       "      <th>FXI</th>\n",
       "      <th>VGK</th>\n",
       "      <th>VPL</th>\n",
       "      <th>SPY</th>\n",
       "      <th>TLT</th>\n",
       "      <th>BND</th>\n",
       "      <th>CSJ</th>\n",
       "      <th>DIA</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2008-01-06</th>\n",
       "      <td>48.22333</td>\n",
       "      <td>34.60000</td>\n",
       "      <td>106.97000</td>\n",
       "      <td>51.76000</td>\n",
       "      <td>76.57000</td>\n",
       "      <td>88.04000</td>\n",
       "      <td>36.99000</td>\n",
       "      <td>46.92000</td>\n",
       "      <td>40.78000</td>\n",
       "      <td>77.50000</td>\n",
       "      <td>...</td>\n",
       "      <td>42.35000</td>\n",
       "      <td>49.85000</td>\n",
       "      <td>54.53667</td>\n",
       "      <td>72.98000</td>\n",
       "      <td>65.77000</td>\n",
       "      <td>141.31000</td>\n",
       "      <td>94.27000</td>\n",
       "      <td>77.55000</td>\n",
       "      <td>101.65000</td>\n",
       "      <td>128.17000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008-01-13</th>\n",
       "      <td>48.95000</td>\n",
       "      <td>34.11000</td>\n",
       "      <td>107.26000</td>\n",
       "      <td>51.12000</td>\n",
       "      <td>75.16000</td>\n",
       "      <td>88.57000</td>\n",
       "      <td>36.46000</td>\n",
       "      <td>45.20000</td>\n",
       "      <td>39.98000</td>\n",
       "      <td>75.60000</td>\n",
       "      <td>...</td>\n",
       "      <td>43.43000</td>\n",
       "      <td>49.52333</td>\n",
       "      <td>56.66667</td>\n",
       "      <td>71.24000</td>\n",
       "      <td>65.11000</td>\n",
       "      <td>140.14999</td>\n",
       "      <td>94.20000</td>\n",
       "      <td>77.77000</td>\n",
       "      <td>102.19000</td>\n",
       "      <td>126.19000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008-01-20</th>\n",
       "      <td>45.13334</td>\n",
       "      <td>32.23000</td>\n",
       "      <td>108.50000</td>\n",
       "      <td>50.00000</td>\n",
       "      <td>71.71000</td>\n",
       "      <td>89.61000</td>\n",
       "      <td>34.58000</td>\n",
       "      <td>43.24000</td>\n",
       "      <td>37.35000</td>\n",
       "      <td>68.90000</td>\n",
       "      <td>...</td>\n",
       "      <td>40.03000</td>\n",
       "      <td>46.31000</td>\n",
       "      <td>52.31333</td>\n",
       "      <td>67.49000</td>\n",
       "      <td>62.59000</td>\n",
       "      <td>132.06000</td>\n",
       "      <td>95.49000</td>\n",
       "      <td>78.28000</td>\n",
       "      <td>102.65000</td>\n",
       "      <td>120.57000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008-01-27</th>\n",
       "      <td>44.45333</td>\n",
       "      <td>30.01000</td>\n",
       "      <td>109.20000</td>\n",
       "      <td>49.88000</td>\n",
       "      <td>70.69000</td>\n",
       "      <td>90.20000</td>\n",
       "      <td>33.09000</td>\n",
       "      <td>43.42000</td>\n",
       "      <td>38.44000</td>\n",
       "      <td>68.70000</td>\n",
       "      <td>...</td>\n",
       "      <td>38.18000</td>\n",
       "      <td>47.21333</td>\n",
       "      <td>49.61000</td>\n",
       "      <td>65.90000</td>\n",
       "      <td>63.02000</td>\n",
       "      <td>133.03999</td>\n",
       "      <td>95.95000</td>\n",
       "      <td>78.65000</td>\n",
       "      <td>103.37000</td>\n",
       "      <td>122.19000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008-02-03</th>\n",
       "      <td>46.54000</td>\n",
       "      <td>31.45000</td>\n",
       "      <td>109.08000</td>\n",
       "      <td>51.32000</td>\n",
       "      <td>73.55000</td>\n",
       "      <td>89.94000</td>\n",
       "      <td>34.61000</td>\n",
       "      <td>44.92000</td>\n",
       "      <td>40.92000</td>\n",
       "      <td>71.35000</td>\n",
       "      <td>...</td>\n",
       "      <td>40.24000</td>\n",
       "      <td>48.98333</td>\n",
       "      <td>50.23333</td>\n",
       "      <td>69.04000</td>\n",
       "      <td>65.13000</td>\n",
       "      <td>139.58000</td>\n",
       "      <td>95.23000</td>\n",
       "      <td>78.31000</td>\n",
       "      <td>102.97000</td>\n",
       "      <td>127.43000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 23 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                EEM      EWG       TIP      EWJ      EFA      IEF      EWQ  \\\n",
       "Date                                                                         \n",
       "2008-01-06 48.22333 34.60000 106.97000 51.76000 76.57000 88.04000 36.99000   \n",
       "2008-01-13 48.95000 34.11000 107.26000 51.12000 75.16000 88.57000 36.46000   \n",
       "2008-01-20 45.13334 32.23000 108.50000 50.00000 71.71000 89.61000 34.58000   \n",
       "2008-01-27 44.45333 30.01000 109.20000 49.88000 70.69000 90.20000 33.09000   \n",
       "2008-02-03 46.54000 31.45000 109.08000 51.32000 73.55000 89.94000 34.61000   \n",
       "\n",
       "                EWU      XLB      XLE  ...      XLU      EPP      FXI  \\\n",
       "Date                                   ...                              \n",
       "2008-01-06 46.92000 40.78000 77.50000  ... 42.35000 49.85000 54.53667   \n",
       "2008-01-13 45.20000 39.98000 75.60000  ... 43.43000 49.52333 56.66667   \n",
       "2008-01-20 43.24000 37.35000 68.90000  ... 40.03000 46.31000 52.31333   \n",
       "2008-01-27 43.42000 38.44000 68.70000  ... 38.18000 47.21333 49.61000   \n",
       "2008-02-03 44.92000 40.92000 71.35000  ... 40.24000 48.98333 50.23333   \n",
       "\n",
       "                VGK      VPL       SPY      TLT      BND       CSJ       DIA  \n",
       "Date                                                                          \n",
       "2008-01-06 72.98000 65.77000 141.31000 94.27000 77.55000 101.65000 128.17000  \n",
       "2008-01-13 71.24000 65.11000 140.14999 94.20000 77.77000 102.19000 126.19000  \n",
       "2008-01-20 67.49000 62.59000 132.06000 95.49000 78.28000 102.65000 120.57000  \n",
       "2008-01-27 65.90000 63.02000 133.03999 95.95000 78.65000 103.37000 122.19000  \n",
       "2008-02-03 69.04000 65.13000 139.58000 95.23000 78.31000 102.97000 127.43000  \n",
       "\n",
       "[5 rows x 23 columns]"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_prices_downsampled.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To calculate the returns, the prices dataframe has to be indexed by date."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>EEM</th>\n",
       "      <th>EWG</th>\n",
       "      <th>TIP</th>\n",
       "      <th>EWJ</th>\n",
       "      <th>EFA</th>\n",
       "      <th>IEF</th>\n",
       "      <th>EWQ</th>\n",
       "      <th>EWU</th>\n",
       "      <th>XLB</th>\n",
       "      <th>XLE</th>\n",
       "      <th>...</th>\n",
       "      <th>XLU</th>\n",
       "      <th>EPP</th>\n",
       "      <th>FXI</th>\n",
       "      <th>VGK</th>\n",
       "      <th>VPL</th>\n",
       "      <th>SPY</th>\n",
       "      <th>TLT</th>\n",
       "      <th>BND</th>\n",
       "      <th>CSJ</th>\n",
       "      <th>DIA</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2008-01-13</th>\n",
       "      <td>0.01507</td>\n",
       "      <td>-0.01416</td>\n",
       "      <td>0.00271</td>\n",
       "      <td>-0.01236</td>\n",
       "      <td>-0.01841</td>\n",
       "      <td>0.00602</td>\n",
       "      <td>-0.01433</td>\n",
       "      <td>-0.03666</td>\n",
       "      <td>-0.01962</td>\n",
       "      <td>-0.02452</td>\n",
       "      <td>...</td>\n",
       "      <td>0.02550</td>\n",
       "      <td>-0.00655</td>\n",
       "      <td>0.03906</td>\n",
       "      <td>-0.02384</td>\n",
       "      <td>-0.01003</td>\n",
       "      <td>-0.00821</td>\n",
       "      <td>-0.00074</td>\n",
       "      <td>0.00284</td>\n",
       "      <td>0.00531</td>\n",
       "      <td>-0.01545</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008-01-20</th>\n",
       "      <td>-0.07797</td>\n",
       "      <td>-0.05512</td>\n",
       "      <td>0.01156</td>\n",
       "      <td>-0.02191</td>\n",
       "      <td>-0.04590</td>\n",
       "      <td>0.01174</td>\n",
       "      <td>-0.05156</td>\n",
       "      <td>-0.04336</td>\n",
       "      <td>-0.06578</td>\n",
       "      <td>-0.08862</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.07829</td>\n",
       "      <td>-0.06489</td>\n",
       "      <td>-0.07682</td>\n",
       "      <td>-0.05264</td>\n",
       "      <td>-0.03870</td>\n",
       "      <td>-0.05772</td>\n",
       "      <td>0.01369</td>\n",
       "      <td>0.00656</td>\n",
       "      <td>0.00450</td>\n",
       "      <td>-0.04454</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008-01-27</th>\n",
       "      <td>-0.01507</td>\n",
       "      <td>-0.06888</td>\n",
       "      <td>0.00645</td>\n",
       "      <td>-0.00240</td>\n",
       "      <td>-0.01422</td>\n",
       "      <td>0.00658</td>\n",
       "      <td>-0.04309</td>\n",
       "      <td>0.00416</td>\n",
       "      <td>0.02918</td>\n",
       "      <td>-0.00290</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.04622</td>\n",
       "      <td>0.01951</td>\n",
       "      <td>-0.05168</td>\n",
       "      <td>-0.02356</td>\n",
       "      <td>0.00687</td>\n",
       "      <td>0.00742</td>\n",
       "      <td>0.00482</td>\n",
       "      <td>0.00473</td>\n",
       "      <td>0.00701</td>\n",
       "      <td>0.01344</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008-02-03</th>\n",
       "      <td>0.04694</td>\n",
       "      <td>0.04798</td>\n",
       "      <td>-0.00110</td>\n",
       "      <td>0.02887</td>\n",
       "      <td>0.04046</td>\n",
       "      <td>-0.00288</td>\n",
       "      <td>0.04594</td>\n",
       "      <td>0.03455</td>\n",
       "      <td>0.06452</td>\n",
       "      <td>0.03857</td>\n",
       "      <td>...</td>\n",
       "      <td>0.05395</td>\n",
       "      <td>0.03749</td>\n",
       "      <td>0.01256</td>\n",
       "      <td>0.04765</td>\n",
       "      <td>0.03348</td>\n",
       "      <td>0.04916</td>\n",
       "      <td>-0.00750</td>\n",
       "      <td>-0.00432</td>\n",
       "      <td>-0.00387</td>\n",
       "      <td>0.04288</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008-02-10</th>\n",
       "      <td>-0.05243</td>\n",
       "      <td>-0.05342</td>\n",
       "      <td>-0.00422</td>\n",
       "      <td>-0.06781</td>\n",
       "      <td>-0.07084</td>\n",
       "      <td>-0.00322</td>\n",
       "      <td>-0.08003</td>\n",
       "      <td>-0.05744</td>\n",
       "      <td>-0.02664</td>\n",
       "      <td>-0.02102</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.03082</td>\n",
       "      <td>-0.06791</td>\n",
       "      <td>-0.06005</td>\n",
       "      <td>-0.06793</td>\n",
       "      <td>-0.06940</td>\n",
       "      <td>-0.04664</td>\n",
       "      <td>-0.01607</td>\n",
       "      <td>-0.00613</td>\n",
       "      <td>0.00214</td>\n",
       "      <td>-0.04457</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 23 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                EEM      EWG      TIP      EWJ      EFA      IEF      EWQ  \\\n",
       "Date                                                                        \n",
       "2008-01-13  0.01507 -0.01416  0.00271 -0.01236 -0.01841  0.00602 -0.01433   \n",
       "2008-01-20 -0.07797 -0.05512  0.01156 -0.02191 -0.04590  0.01174 -0.05156   \n",
       "2008-01-27 -0.01507 -0.06888  0.00645 -0.00240 -0.01422  0.00658 -0.04309   \n",
       "2008-02-03  0.04694  0.04798 -0.00110  0.02887  0.04046 -0.00288  0.04594   \n",
       "2008-02-10 -0.05243 -0.05342 -0.00422 -0.06781 -0.07084 -0.00322 -0.08003   \n",
       "\n",
       "                EWU      XLB      XLE  ...      XLU      EPP      FXI  \\\n",
       "Date                                   ...                              \n",
       "2008-01-13 -0.03666 -0.01962 -0.02452  ...  0.02550 -0.00655  0.03906   \n",
       "2008-01-20 -0.04336 -0.06578 -0.08862  ... -0.07829 -0.06489 -0.07682   \n",
       "2008-01-27  0.00416  0.02918 -0.00290  ... -0.04622  0.01951 -0.05168   \n",
       "2008-02-03  0.03455  0.06452  0.03857  ...  0.05395  0.03749  0.01256   \n",
       "2008-02-10 -0.05744 -0.02664 -0.02102  ... -0.03082 -0.06791 -0.06005   \n",
       "\n",
       "                VGK      VPL      SPY      TLT      BND      CSJ      DIA  \n",
       "Date                                                                       \n",
       "2008-01-13 -0.02384 -0.01003 -0.00821 -0.00074  0.00284  0.00531 -0.01545  \n",
       "2008-01-20 -0.05264 -0.03870 -0.05772  0.01369  0.00656  0.00450 -0.04454  \n",
       "2008-01-27 -0.02356  0.00687  0.00742  0.00482  0.00473  0.00701  0.01344  \n",
       "2008-02-03  0.04765  0.03348  0.04916 -0.00750 -0.00432 -0.00387  0.04288  \n",
       "2008-02-10 -0.06793 -0.06940 -0.04664 -0.01607 -0.00613  0.00214 -0.04457  \n",
       "\n",
       "[5 rows x 23 columns]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_returns = stock_prices_downsampled.pct_change().dropna(how='all')\n",
    "stock_returns.head()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The pct_change() function calculates the percentage change with the previous day price for each asset. This gives us the returns for that asset for different time periods."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (b) Compute the covariance of their returns, V"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "V = stock_returns.cov()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 504x504 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x720 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(7, 7))\n",
    "g = sns.clustermap(V)\n",
    "g.fig.suptitle('Covariance Matrix of Asset Returns', fontsize = 20)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (c) Identify the hierarchical clusters among the N strategies"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[18.        , 22.        ,  0.10747657,  2.        ],\n",
       "       [ 4.        , 16.        ,  0.10917731,  2.        ],\n",
       "       [ 6.        , 24.        ,  0.12945876,  3.        ],\n",
       "       [ 1.        , 25.        ,  0.16024057,  4.        ],\n",
       "       [ 7.        , 26.        ,  0.16912907,  5.        ],\n",
       "       [ 3.        , 17.        ,  0.177188  ,  2.        ],\n",
       "       [27.        , 28.        ,  0.19544265,  7.        ],\n",
       "       [12.        , 23.        ,  0.20099293,  3.        ],\n",
       "       [14.        , 29.        ,  0.21063886,  8.        ],\n",
       "       [30.        , 31.        ,  0.21901211, 11.        ],\n",
       "       [ 0.        , 32.        ,  0.23045824, 12.        ],\n",
       "       [ 5.        , 19.        ,  0.23713254,  2.        ],\n",
       "       [ 8.        , 33.        ,  0.24357927, 13.        ],\n",
       "       [15.        , 35.        ,  0.24585138, 14.        ],\n",
       "       [10.        , 36.        ,  0.26179476, 15.        ],\n",
       "       [ 9.        , 37.        ,  0.26943771, 16.        ],\n",
       "       [11.        , 20.        ,  0.35366675,  2.        ],\n",
       "       [34.        , 39.        ,  0.37107351,  4.        ],\n",
       "       [ 2.        , 40.        ,  0.39989529,  5.        ],\n",
       "       [21.        , 41.        ,  0.40247425,  6.        ],\n",
       "       [13.        , 38.        ,  0.40663868, 17.        ],\n",
       "       [42.        , 43.        ,  0.58152293, 23.        ]])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "correlation = stock_returns.corr()\n",
    "distances = np.sqrt((1 - correlation) / 2)\n",
    "clusters = linkage(squareform(distances), method=\"single\")\n",
    "clusters\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "columns = stock_returns.columns\n",
    "plt.figure(figsize=(15, 5))\n",
    "dendrogram(clusters, labels=columns)\n",
    "plt.xlabel('Tickers', fontsize=12)\n",
    "plt.ylabel('Cluster Leaves Distances', fontsize=12)\n",
    "plt.title('Hierarchical Clustering Dendrogram', fontsize=12)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (d) Plot the clustered correlation matrix of the N strategies"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 504x504 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl4AAAKUCAYAAADVUjZUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3XmcJVV98P/Pt3tWQJARUUBkZIkbiSMaQUKURBGJC1lcUMwjirYa8Qkm4XF4NDhxiZNg3BXtGDLGBwWDiqMiBpGRn2wy6iCgIAOODAgCg6yzdvf390dVw507997u21Nd3dP383697qu7qk5969z9e885dSoyE0mSJE2+vqmugCRJUq8w8ZIkSaqJiZckSVJNTLwkSZJqYuIlSZJUExMvSZKkmph4qXYRsSIiJn0ek4jIiFgx2ceZ6SJiYflYLpvEY+waEZ+IiDURMVQeb9FkHU+SpoqJ1zQXEU+JiE9GxLURcV9EbI6I30TEtyPixIiYO9V1nCrll/Saqa5HN8qEIiNiJCIO6FDu4oayJ2znMU+oIs4k+1fgHcA1wIeAfwLumMoKRcS/l4/b+oh49FTWZSwRsaSs65Fd7rew4XU2ehuKiDsj4oKIOLbCOvpDSAJmTXUF1F5EnAa8lyJBvhz4AvAg8DjgSODzwNuAZ09RFae7pwLrp7oSLQxRvPdOBP5v88aIOIji+R0tN9Vuo3gs75vEY7wU+GVmvmwSjzFuEfEo4DgggfnA64BPTWmlJtd9wMfK/+cCT6d4To6OiFMy88NTVjNphpkOH+pqISL+L8Wv/rXAKzPzyhZlXgr8fd1121Fk5vVTXYc2fgvcDrwhIk7LzKGm7W8q/34T+Itaa9ZCZm4BJvux3Bu4ZJKP0Y3XArsAHwFOAt7MzE687s3MJY0rIuI44MvAP0XEZzJzOv6IkXY8meltmt2AhcDm8nbwGGXntlj3KoovsfuADRTdN6e2KbumvO1K8SWzBtgCLCm3L6H41X8kxZfRlRStbmua4hwKnEvRPbSZImH8HLB3i2OuKF56W62bQ/EFdz7wa2ATcA/wPeCYprJHlnVqdVvWUC6BFS2OvxtFd9YNwEbgd8B3gRe2KDt6rCXAIuDbwL0ULWk/AA7v8rlN4FZgoPz/z5u2z6ZIzC4FPlCWOaGpzLOAjwNXl4/RRuBG4N+A3Vs91m1uC8fzHFO8Hpsf20PL5/lmYLemY+5V3ocHgaeM8Xi0q9+KhjJ9wFuBq8qYD5X/vw3oa/MYrwAeT9EqfBsw3Pw4jlGvleU++1K8rhM4tE3ZxwEfLl9PD5WvjxuAZcD+DeUCeD1wGXBX+bytLV97r24R9wkUyd7NFO+HdcBy4A9bvIdbPsfj/KxJmt7PDfV9sNz+7Db7vwa4uLzPG4FfAO+h4bMGOKHDa3D0c+bIxuV2n1NN60bjngC8uHzO72u83w2vhT2AQYofPJuA64A3tLnP436OvHmbyM0Wr+npDRRfwGdn5rWdCmbmpsbliPhniiTrbuBLFB+cxwD/TNFt8KLM3NwUZg7wfWAB8D/A/cCvmsr8PXAURSvMxRTJy+gx30jxobaJ4othLXAQRcvNyyLisMy8ZYz7vIAimbgMuJDiQ28v4GXA+RHx5sz8fFl2DUVr4Mnl8sca4qzqdJByrM6lwNMovrw/RvGh/CrgfyLibZn5uRa7Phv4PxRdvp8Hngj8FXBRRCzKzBvGuH/NvkyR6L4JOK9h/cuBPYF3AQe22ffNFC1hP6BITPsokrG/A46JiEMz84Gy7DKKL8VjgW+w9eNzb1Pcts9xs8y8smyVPR34d4rHj4joA84q78MJOXar4zKKL8b3UiTcy8r1axrKfJEiIVxL8dhnef8/AxwBHN8i7gLgCorX/9eAEYpkcEwR8UyKx/PCzFxbnlTwVxTJ8pVNZXeieD0dQPG6/SbFl/d+FI/5uRSJE8AHKd6bvwK+QpEk7AX8IfBK4JyGuIdQvBcXUHzpf43idfrnwA8j4i8y8/yy+MfK9c+nGI6wZjz3s0tbmldExJkUn1W3Al+leD0dBrwfeEFEHJVFa+4qivdr83MMxXO/vV5BkXh9B/gsxWPfaPQ9v5ni+ZhL8XifGREjmfmFhrLjfo6kCZvqzM/btjfgIoovlzd1ud9zy/1uAR7fsH4WxRdCAv+3aZ815frvATu3iLmk3P4Q8MwW23+P4gNtNbBP07YXULQafL1p/Qq2bfGaCzyhRfzdgGspWnbmt6j7mg6PxzYtXhStcFn+jYb1B1F8yG6ibAkq1x/JI7/OT2iK9ZZy/We6eI4SuLX8//MU47ie0LD9grIeO9G+xWs/oL9F7BPL8u9qWn9CqzhdPMcLaWrxKtcHRQtgAm8p1723XP5Cl6/ddq2Trym3/QTYpWH9zhStUgm8tkWsBP4LmDWB999ny/1f0/D+uZ0iidu1qezLyrIfbRFnDvCohuV1FEnKTi3K7tH0fl1N0dry/KZye1O04N3O1q1Ko8/hkV3e19Hndpv3EcW4tgTuBOa1eU19jW3fl6N1+dvxPMdN77Mlbbavaa5jQx1GgBd3eF0lxXutv2H90yjeez9vKj+u58ibt+25eVbj9LRX+ffWLvd7Y/n3A5n58BlhWfzq/HuKD6g3tdoR+PvMfKhD7MHM/GmL9W+jaJ3728y8rXFDZl5E0QL2snKwcluZuSkzt7m/mXkfcCawO8WvzgmLiDkUXyYPAqdmZjYc50bgExRflv+rxe6XZuaypnVnUnx4P2eCVfp3oJ/yeYuI/ShanM7KDuNpMvPXmTncYtOZFK2VR0+wPu2e43b1SIpumduAj0XE24F/pOhm+5sJ1qHZ6Gt6cWY+2HDshyhaBaH1a3oz8A+57fi5jiJiZ4rWtfuAr5fHGqJoxduZ1q1rUHTpbyUzN+cjLY+jtlD8GGkue3fD4ksoWtA+mZk/aCr3G4ozQB9P8cOmKo8uz4xcEhEfiohvUiSumymS6o1N5f+W4rX/xsxsvu/vp0hg2j1WVftGZl7QYft64O8a3zOZ+XOKVrCnRsQuTeXH8xxJE2ZX48xySPn3+80bMvOXEXEr8KSI2K1MaEZtBH42RuwftVn/3PLv8yOiVWK0J0Vy8XvAjzsdICKeDpwCPI8i+ZzXVGSfMeo4lidTtCRdmpn3tNj+fYrxKc9ssW1l84rM3BIRv6VICruWRXfdNcAbI+IDFAlEH0VC1lZEzKZobTuO4pf7bmw9NcxEH6d2z3FbmXl3RLyW4rH7FMVr6dVjJPHdOITiB8OKFtt+QPEF2er5WpOZd07geMcBjwI+15RsLKP48fJm4IymOtwGLC67B8+n+EJf1SI5PotiyoyfR8RXyn0vb3ovwiPvqf0iYkmLOh5U/n1qebwq7EbRWtloE3BsZn63cWXZvfoMiuEMJ0dEq3ibyvrVYazX7Y2ZeX+L9WvLv7tT/BiD8T9H0oSZeE1Pt1N8aHX7BTo6Juf2DnGfSDHmofGD5M7G1p822s2p9Jjy7ylj7N/8q3IrEXEYxZf3LIqu1uUUrTcjFIPaj6Xojtwe43l8oHh8mjWPhxo1RJFYTtS/U7S0HUMxXubH42h1OodijNPNFOO27qD4ooNi3NtEH6eJzpv1I4ru7ScBF2fm1ROM08puwD257bhEMnMoIu6mSO6bTfS+DJR/lzUd69qI+DHwrIh4dmauLNffX752/4lifN5oa+PdEfEZitbn0fFR76R4zt4ALC5vQxFxPkWL8+qy3Oh76pVj1LXje6pLv87MhVBMZkvR8vp54CsR8dyyhWjU7hTdzI9l22RtKoz1XHd678LW79/xPkfShJl4TU8/BP6UoivhP7rYbzSZejxwU4vtezWVGzVW0tWpzGis3dr8qhyv91DMl/QnmbmicUNEnEqReG2vxsenlXaPz2T6IvAvFOOK9gHe16lwRDybIukaPdtzqGFbH8UJABM1ntdBKx+nSLruphjcf3xmnrUd9Wh0H7AgImY3JDAARMQsigHnrV53Xd+XiPgDHuk2vrxNSw4UydnDLaBlF/mJUezwNIr37tuB0yhaIv+xLDdMMRD+YxGxJ8WJAcdRJFhPj4inZ3GyzOjr79jMXN7t/dhe5fv4qxGxEfgW8F8R8YcNP85G6/fTzDykZZDujZR/230nPZr2CdREX7fbBhr/cyRNmGO8pqf/pBhn8FcR8bROBZtmrh9tKTmyRbkDKU5P/1VmtvsAm4gryr9/vJ1xDqRo2VjRYtvz2+wzTHetTTdQjPd4RpuZyP+k/PuTLmJul/K5OJfiuXmI4mzHTkbPdFzeYvzScyiS12ajXV7b0zLXUkS8iiIRuYSiW/Au4LPlJLBV+CnF59TzWmx7HsV9qur5Gm3tWkHxg6fVbQPwmhbjgsjCdZn5SYoWIyjONtxGZt6ZmV/LzFdRtPQeABxcbp7Ie6ry5zgzv01xssezKMa9ja5/kGI6hqdHxIIuQo50qN/vyr/7Nm8oP7vanmE7WcZ4jqQJM/GahjJzDcWZQXOAb5etHNuIiNFTqEedWf59T0Q8tqFcP8U8Q31014I2Hp+iSBI/GhG/16KOcyJiPF8gayhaNv6gaf8TaT9YfB3w2IholWxso+yuOotiDM/7m45zAPC/Ke7LF8cTr0LvoWjFOrrFYOxma8q/RzauLH+df7rNPuvKv0+cYP1aioj9KbpK11GcWbiWYrD9zsA5Uc3lrEZf0x8qxxaNHnsnYGm5uN2v6fI1dDxFAnN8Zr6p1Y1i2oRdKM62JCKeHhGPaxFydN36stzciPijFsedTTFlxMNlKbqPbwLeHhF/1qa+z218PJik55iytY5iEtXG1qiPUHw+ndnqR0xE7F6OeWu0jhaJVel6ipbLY8vX8mic+RRd8ZOuy+dImjC7GqepzPzn8oPuvcBVEXEZRffG6CWDnkcxyLaxy+OyiPhXiu6mayPiXIpWlGMofqn9kGLepSrreX05j9eZwHURcQHwS4ozHZ9I8av9LuApY4T6GEWC9cNyUOt9FHNnHUHRIvSKFvtcRHGm4wURcQnFOKerM/ObHY6zuKzTSeXJABfzyDxejwJOyszmOcwmVRZznI01z9moqygGb/9l+Zr4IcXr4RiKFr3ftNjncoovjJMj4jE8MibmkxMdNFx+GZ1NMfHuy0fPaM3M70TEvwH/QJHsv2Mi8Udl5peiuF7gqyheX+dRTjxL0b15TkXdmq+m6M76ZnnmYDufpzgzdoAi6TwKOD0iLqd43d9J0Xp5LEULz+j7bT7Fa3s1xUkmv6Y4eeQoivGcyzPzF+V93hIRf0kxf9e3y+d5FcVzuC/Fa35/iq7x0UTg4vJ4H4qIgylbkDLzA9vxmJCZKyPiG+X9OZFiGhYy88yIeBbF2as3RcR3KV7DCyiel+dRtNy/tSHcRcBx5RmTP6H4kXNJZl5S3uePUyR6P42Ir1N8Px1F8Zru9JxUZdzPkbRdchrMaeGt/Y3iDf9Jirms7qc4vft2ipauE2k9G/1xFF/ID1CcZXYd8G6a5uIpy66h81xYSxjH/EDA71MMSG6cdf5aig/qP20qu4IWs2pTXBvuirLe91JMIPk82sxDRdGycgbFtBtDbDu7eru5oR5NMa7qxrKu91JMfvmiFmWPpMv5hcZ4nB6ex2scZdvN47WAYvLQNeXzexPFBLk7tasPxQSTl/PITORJi5nr29RjYYvH9t/KdR9vUX42xUSjCfxFF4/LNs9Vua2P4gt+JUWisZ7ii/HtdJi5vsv32aXlfi8fR9kbyrKLKN6fHynrdlf5elpD8WPh8IZ9ZlP8IPoORYKysSx/BUVyMqfFcfakaNW7trzPD5av2XMpkr9ZTeVfR5GgbRh9jsdxX0af206fAc+gSOpuZdv5vF5KMQ7sTorPpjsoTrb4AE1XLSjvz5coJrIdpul9RTFgf3H5et5cPk7/2u51zRjz043jdbWs6X3Q9XPkzdtEbpFZ2bhESZIkdeAYL0mSpJqYeEmSJNXExEuSJKkmJl6SJEk1MfGSJEmqiYmXJElSTUy8JEmSamLiJUmSVBMTL0mSpJqYeEmSJNXExEuSJKkmJl6SJEk1MfGSJEmqiYmXJElSTUy8JEmSamLiJUmSVBMTL0mSpJqYeEmSJNXExEuSJKkmJl6SJEk1MfGSJEmqiYmXJElSTUy8JEmSamLiJUmSVBMTL0mSpJqYeEmSJNXExEuSJKkmJl6SJEk1MfGSJEmqiYmXJElSTUy8JEmSamLiJUmSVBMTL0mSpJqYeEmSJNXExEuSJKkmJl6SJEk1MfGSJEmqiYmXJElSTUy8JEmSamLiJUmSVBMTL0mSpJqYeEmSJNXExEuSJKkmJl6SJEk1MfGSJEmqiYmXJElSTUy8JEmSamLiJUmSVBMTL0mSpJqYeEmSJNXExEuSJKkmJl6SJEk12SESr4g4MyLujIhr22yPiPhERKyOiJ9FxCEN214fETeWt9fXV2tJkqSt7RCJF7AMeHGH7ccAB5W3AeAMgIhYALwXOBR4DvDeiNh9UmsqSZLUxg6ReGXmJcA9HYocC/xXFq4AHh0RewFHAxdm5j2Z+TvgQjoncJIkSZNmVjeFt9x9c05GJeY89oC3ULRUjRrMzMEuQuwDrG1YvrVc1269JElS7bpKvBjeMimVKJOsbhItSZKkHU5XiVcOD01WPbbXbcC+DctPKNfdBhzZtH5FbbWSJElq0F2L15ZNk1SN7bYcOCkizqYYSH9fZt4eEd8F/rlhQP2LgFOnqpKSJKm3ddfiNbR5surRUUR8maLlao+IuJXiTMXZAJn5WeB84M+A1cB64A3ltnsi4v3AVWWo92Vmp0H6kiRJkyYyxz9eftP1P5iUwfVzn/L8mIy4kiRJ00l3XY1T1OIl9aqIWAzMm+p6SJp2Nmbm0qmuhLrXZVfjtB3jJc1U8zJzyVRXQtL0EhFLproOmpiZMrhekiRp2rOrUZIkqSbddTXa4iVJkjRhXXY12uIlSZI0UTtEV2NEvBj4ONAPfL75TI6I+CjwJ+XiTsCemfnoctswcE257ZbMfHk9tZYkSdratG/xioh+4NPAURQXub4qIpZn5s9Hy2TmOxvKvwN4ZkOIDZm5qK76SpIktTPtEy/gOcDqzLwZoLws0LHAz9uUfw3FzPaSJEnTyrRIvCJiABhoWDWYmYPl//sAaxu23UpxPcZWcfYDngR8v2H1vIhYCQwBSzPzvMoqLkmS1IUuE68tk1KJMskaHLPg2I4Dzs3M4YZ1+2XmbRGxP/D9iLgmM2+q4FiSJEld6XJw/eQkXmO4Ddi3YfkJ5bpWjgPe3rgiM28r/94cESsoxn+ZeEmSpNpNi67GMVwFHBQRT6JIuI4DXttcKCKeAuwOXN6wbndgfWZuiog9gD8C/rWWWkuSJDXpcgLV+lu8MnMoIk4CvksxncSZmXldRLwPWJmZy8uixwFnZ2Y27P5U4HMRMQL0UYzxajcoX5IkaVJ11+K1eUq6GsnM84Hzm9ad1rS8pMV+lwG/P6mVkyRJGqcuuxqHJqkakiRJM9+072qUJEmaKWzxkiRJqsm0mMdLkiSpF3TX1bjZFi9JkqSJsqtRkiSpJn3dFM7NQ5NyG0tEvDgiboiI1RGxuMX2EyLirohYVd7e1LDt9RFxY3l7fTf3V5IkqUpdntU4PHahikVEP/Bp4CiKC2RfFRHLW0yEek5mntS07wLgvcCzgQR+XO77uxqqLkmStJUur9U4MknV6Og5wOrMvBkgIs4GjgXGMwP90cCFmXlPue+FwIuBL09SXSVJktrqcnD95CReETEADDSsGszMwfL/fYC1DdtuBQ5tEeavIuJ5wC+Bd2bm2jb77lNZxSVJkrowLRKvMskaHLNge98EvlxeDPstwBeAP62kcpIkSRXpKvEamaTEawy3Afs2LD+hXPewzFzXsPh54F8b9j2yad8VlddQkiRpHLps8ZqsanR0FXBQRDyJIpE6DnhtY4GI2Cszby8XXw78ovz/u8A/R8Tu5fKLgFMnv8qSJEnb6rLFa7Kq0V5mDkXESRRJVD9wZmZeFxHvA1Zm5nLgf0fEy4Eh4B7ghHLfeyLi/RTJG8D7RgfaS5Ik1a27xGtLTFY9OsrM84Hzm9ad1vD/qbRpycrMM4EzJ7WCkiRJ49BV4jW8eWoSL0mSpJmgu8RrS1cT3UuSJKmBiZckSVJNuku8hky8JEmSJqqrxGvIxEuSJGnCdoiuxoh4MfBxiukkPp+ZS5u2/x3wJorpJO4C3piZvy63DQPXlEVvycyX11ZxSZKkBt21eA3Xn3hFRD/waeAoimstXhURyzOz8SLZPwWenZnrI+JtFDPXv7rctiEzF9VaaUmSpBamfeIFPAdYnZk3A0TE2cCxwMOJV2Ze3FD+CuB1tdZQkiRpHLpKvLYM909KJSJiABhoWDVYXjgbYB9gbcO2W4FDO4Q7EfhOw/K8iFhJ0Q25NDPPq6DKkiRJXeuuxWtkclq8yiRrcMyCY4iI1wHPBp7fsHq/zLwtIvYHvh8R12TmTdt7LEmSpG511+KVUzJz/W3Avg3LTyjXbSUiXgi8G3h+Zm4aXZ+Zt5V/b46IFcAzARMvSZJUu+4SL6ZkjNdVwEER8SSKhOs44LWNBSLimcDngBdn5p0N63cH1mfmpojYA/gjioH3kiRJtesy8aq/xSszhyLiJOC7FNNJnJmZ10XE+4CVmbkcOB3YBfjviIBHpo14KvC5iBgB+ijGeP285YEkSZImWXeJV0zNPF6ZeT5wftO60xr+f2Gb/S4Dfn9yaydJkjQ+XSZeUzLGS5IkaUboMvGarGpIkiTNfLZ4SZIk1cQWL0mSpJqYeEmSJNWky+kkJEmSNFFdzQ8xFJNzG0tEvDgiboiI1RGxuMX2uRFxTrn9yohY2LDt1HL9DRFxdDf3V5IkqUrTvqsxIvqBTwNHUVwg+6qIWN40EeqJwO8y88CIOA74F+DVEfE0ipnunw7sDXwvIn4vM4frvReSpF5TNhTMm6TwCyNiySTF3piZSycpds/rsqsxJ6senTwHWJ2ZNwNExNnAsUBj4nUssKT8/1zgU1FMYX8scHZ57cZfRcTqMt7lNdVdktS75mXmkqmuRLcmMaET02SMV0QMAAMNqwYzc7D8fx9gbcO2W4FDm0I8XKa8xNB9wGPK9Vc07btPhVWXJEkaty67GienxatMsgbHLChJkrQD2xG6Gm8D9m1YfkK5rlWZWyNiFrAbsG6c+0qSJNWiq7Mat5CTchvDVcBBEfGkiJhDMVh+eVOZ5cDry/9fAXw/M7Ncf1x51uOTgIOAH3VznyVJkqoy7Vu8yjFbJwHfBfqBMzPzuoh4H7AyM5cD/wF8sRw8fw9FckZZ7isUA/GHgLd7RqMkSZoqXSZeI5NVj44y83zg/KZ1pzX8vxF4ZZt9Pwh8cFIrKEmSNA7TvsVLkiRppugu8cqpafGSJEmaCbpKvIamqKtRkiRpJtghxnhJkiTNBHY1SpIk1cQWL0mSpJp0NYHqUI5Mym17RMSCiLgwIm4s/+7eosyiiLg8Iq6LiJ9FxKsbti2LiF9FxKrytmi7KiRJktRGl12N03Lu0cXARZm5NCIWl8vvaiqzHvhfmXljROwN/DgivpuZ95bbT8nMc2ussyRJ6kHdndU4Pcd4HQscWf7/BWAFTYlXZv6y4f/fRMSdwGOBe5EkSapJd9dqzOFJuUXEQESsbLgNdFGtx2Xm7eX/dwCP61Q4Ip4DzAFualj9wbIL8qMRMbebx0SSJGm8umzxmpyuxswcBAbbbY+I7wGPb7Hp3U1xMiLaTq8fEXsBXwRen/lw892pFAnbnLIO7wLe19UdkCRJGocdYoxXZr6w3baI+G1E7JWZt5eJ1Z1tyu0KfBt4d2Ze0RB7tLVsU0T8J/APFVZdkiTpYdOixWs7LQdeDywt/36juUBEzAG+DvxX8yD6hqQtgD8Hrp38Ku8YypMV5k11PXrcwohYMtWVEBszc+lUV0LSjq+7Fq+RaZl4LQW+EhEnAr8GXgUQEc8G3pqZbyrXPQ94TEScUO53QmauAs6KiMcCAawC3lpz/aezeZm5ZKorIU01k19JVdnhW7wycx3wghbrVwJvKv//f8D/a7P/n05qBSVJkkrdJV4jQ5NVD0mStJ0qGiJSxRAHu+fbmAldjZIkqTAthojYPd/eDt/VKEmStKPoKvEaHpmWM9dLkiTtELoc42WLlyRJ0kQ5xkuSJKkmXXY1mnhJkiRNVFeJ1+ZNt8ZkVUSSJGmm65vqCkiSJPUKEy9JkqSamHhJkiTVxMRLkiSpJiZekiRJNenqrEZJ00tFF8TV2Kq4aHCvOIKJfbesKW8T4QWZJ8F2fr5M9D0z459LEy9pxzYtLogrjYqIJVW9Jrv44n/KOL7kZ/wX+iSo/fOlF37gmHhJkqaryr74e+ELXTsGx3hJkiTVxBYvSZI06cbZdTzesWE7bNexiZckSaqDXceYeKlHzOCz/2by2XY77C9azXy23miiTLw0rUxigrSQiZ+q3s4O9WG5Ayaf4zlTbTrZoV4P2m623mhCTLw03UzF6csTTUi2JzGYii/pGTH1xDROIKdjomgyKE0zJl6Sc9XsaGZEAlkHX2fS9GPipVp00UoxnjER/oqXJO2QTLxUF8dDSBWp+IcM+GNGqo2Jl6RJMZknSnRIJiZ6nUCY+LUCd/jxev6Ykepj4iVpskzJ2LmKE5LxJI/jHVRvq5IkEy+pSo5lm3HsIpdUKRMvqVo98UXt5JGSNDEmXpImoicSTEmqWmTmVNdBkiSpJ/RNdQUkSZJ6hV2NPWjL3TdX1sy5cclJVYWib4/dKosFkA+uryxW3377VBaL4eHKQuVd91QWCyA3bKouWF9UFirmz60sFgBz51QXa9PmykLlQxsri1X1YzZ8x72VxRq6u8LHbKSyUAC875q9Kot1T1Z3P989t7rXxtUP7F5ZLICnz7+vslibt/RXFgvgkLXfqO6DqCK2eEmSJNXExEuSJKkmJl6SJEk1MfGSJEmqiYmXJElSTUy8JElSz4mIfSPiVxGxoFzevVxeGBHXtii/IiKe3bDcstxYTLwkSVLPycy1wBnA6CXLlgKDk31cEy9JktSrPgocFhEnA0cAH57sAzqBak3GeVHhSVX2M3DDAAAgAElEQVTVtfUkSdoRRMQAMNCwajAzH27VyswtEXEKcAHwonJ5Uutk4lWfyi4qLEmSxlYmWWN1Hx4D3A4cDFzYKdw413VkV6MkSepJEbEIOAo4DHhnRHS6ZtQ6oPF6SwuAu7s9pomXJEnqOVH0KZ4BnJyZtwCn03mM1wrgdfFIX+TrgYu7Pa6JlyRJ6kVvBm7JzNHuxc8ATwX2A54cEbc23F5J0WX5AHB1RFwN7MIEBuM7xkuSJPWc5vFfmTkMHFIuzm6z20nbe1xbvCRJkmpi4iVJklQTEy9JkqSaOMarB21cst1d1A+bt+RTlcUavvHKymIB5EP3VRYrFuxdWSw2PFBZqFx3e2WxAJi3U3WxcqS6WHOqnXs4Zs2tLFYxLKQiw0PVxRqp8PEH4uqrKos1+3GPryxWPvRgZbEAzr7kO5XFWlfhe/0vFjy/sljXVTyV9+rh3SqL9dv+Ct8DPDJgazqxxUuSJKkmJl6SJEk1MfGSJEmqiYmXJElSTUy8JEmSamLiJUmSVBMTL0mS1HMiYt+I+FVELCiXdy+XF0bEtS3KLyu3r4qI6yPivRM5romXJEnqOZm5FjgDWFquWkrDtRvbOCUzFwGLgNdHxJO6Pa6JlyRJ6lUfBQ6LiJOBI4APj3O/0WloH+r2gM5cP8NExGIeeUFsJTOX1FsbSZKmTkQMAAMNqwYz8+FWrczcEhGnABcALyqXO4U8PSLeAxwIfCIz7+y2TiZeM888EyxJkqBMssbqPjwGuB04GLhwjLKnZOa5EbELcFFEHJ6Zl3VTJ7saJUlST4qIRcBRwGHAOyNir/Hsl5kPAisouie7YuIlSZJ6ThR9imcAJ2fmLcDpjHOMV0TMAg4Fbur2uCZekiSpF70ZuCUzR7sXPwM8FdgPeHJE3Npwe2VZ5vSIWAX8DLgG+Fq3B3WMlyRJ6jnN478ycxg4pFyc3WKX/67iuLZ4SZIk1cTES5IkqSYmXpIkSTVxjNcM0DRp6sKxyvftsVtlxx6+8crKYvUfdGhlsQCGLvpidcHmP6qyULmx64mO2+ur+LfTxvXVxaqybrPmVBcLKIZyVGTzxupiDQ9VF2vL5upiAeyyS2Wh8rd3VBaLkawuFjC3v9XQnonpOA1nl/buq+519rOcX1ksgF2yunva13Jo1cxi4jUzPDxpakQsmdqqSJKkduxqlCRJqomJlyRJUk1MvCRJkmpi4iVJklQTEy9JkqSamHhJkqSeExH7RsSvImJBubx7ubwwIq5tUX5ZuX1VebtsIsc18ZIkST0nM9cCZwBLy1VLabh2YxunZOai8nb4RI5r4iVJknrVR4HDIuJk4Ajgw5N9QCdQnXk2tptEdXSSVUmSekFEDAADDasGM/PhVq3M3BIRpwAXAC8qlzuFPD0i3lP+f11mHt9tnUy8ZpjMXDp2KUmSZr4yyRqr+/AY4HbgYODCMcqekpnnbk+d7GqUJEk9KSIWAUcBhwHvjIi9JvuYJl6SJKnnRNGneAZwcmbeApxODWO8TLwkSVIvejNwS2aOdi9+BngqsB/w5Ii4teH2yrLM6Q3TSayKiDndHtQxXpIkqec0j//KzGHgkHJxdotd/ruK49riJUmSVBMTL0mSpJqYeEmSJNXEMV49KB9cX12sh+6rLNbQRV+sLBbArBf8dWWxRu76dWWxYsvmymKNrP1FZbEAmF3hR8LwUHWxhqp7zACY3fV42Paiwt+vFb42qhZ9HSeV7M5jHlNZqFz/UGWxAB7csrGyWP19/ZXF+mXsVFmsO6Pa19mjsrr3051R4efGNGWLlyRJUk1MvCRJkmpi4rWDi4jFwMKprockSRqbideObx6wZqorIUmSxmbiJUmSVBMTL0mSpJqYeEmSpJ4TEftGxK8iYkG5vHu5vDAirm1RfllEvKL8f0FE/DQi3tDtcU28JElSz8nMtcAZwNJy1VIart3YTkTsBnwXGMzM/+z2uCZekiSpV30UOCwiTgaOAD48RvldgO8AX8rMMyZyQGeunyHKaSXmdSqTmUvqqY0kSVMvIgaAgYZVg5n5cKtWZm6JiFOAC4AXlcudQn4E+HxmfnSidTLxmjnmmVhJkvSIMskaq/vwGOB24GDgwjHKfh84NiI+nJl3TqROdjVKkqSeFBGLgKOAw4B3RsReY+xyNvBZ4PyIeNREjmniJUmSek4UfYpnACdn5i3A6Yw9xouym/Ei4GsR0fUVwk28JElSL3ozcEtmjnYvfgZ4KrAf8OSIuLXh9srGHTPzXcCtwBcjoqtcyjFekiSp5zSP/8rMYeCQcnF2i13+u2n/rufwAlu8JEmSamPiJUmSVBMTL0mSpJo4xqsH9e23T2WxYsHelcVi/oTOzG1r5K5fVxar77H7VRYrN2+oLFY8cHdlsSo3MlJdrHk7VRcLiPm7Vharyucz+6t7PmP23MpiAeTG9ZXFiic+ubJYXHdVdbGA+bO6PkmtrQ1DmyuLdeBIda+zm7PjXNtde8xwdbFm9UBaYouXJElSTUy8JEmSamLiJUmSVBMTL0mSpJqYeM0MG4GFU10JSZLUmYnXDJCZS4E1U10PSZJ2JBHx7oi4LiJ+FhGrIuLQiFgRETdExNURcWlEPDkiPhgR/9Kw334RcXNEPLrbY8788zYlSZKaRMRzgZcCh2TmpojYAxidT+T4zFwZEQMUF89+NbAqIpZl5i+AjwP/mJn3dntcW7wkSVIv2gu4OzM3AWTm3Zn5m6YylwAHZuYG4J3ApyPiz4BHZeZZEzmoiVcPiIjFEbFkqushSVKdImIgIlY23AYaNv8PsG9E/DIiPhMRz28R4mXANQCZeT7wO+ALwN9MtE52NfaGeZm5ZKorIUlSnTJzEBhss+3BiHgW8MfAnwDnRMTicvNZEbGBYvz0Oxp2+zQwPzNvmGidTLwkSVJPysxhYAWwIiKuAV5fbjo+M1e22GWkvE2YXY2SJKnnlGcrHtSwahFQ3UV+27DFS5Ik9aJdgE+WU0IMAauBAeDcyTyoiZckSeo5mflj4PAWm47ssM8Kiq7JCbOrUZIkqSYmXpIkSTUx8ZIkSaqJY7x60fBwdbE2PFBZqNz4UGWxAGLL5spi5eYNlcWKOfMri5VbNlUWC4C+Cn+LVfj4x6xqP6qqfD6pNNbGykJlbtcZ79uq8HMj11f4ubGp2vfASGZlsfoiKouVWV2sDVHta2M4+iuLtaWySNOXidfMsbHD7PQLa6yHJElqw8RrhsjMpe22ebkgSZKmB8d4SZIk1cTES5IkqSYmXpIkSTUx8ZIkSaqJiZckSepJETEcEasi4rqIuDoi/j4i+sptR0bEt5rKnxcRV2zPMT2rUZIk9aoNmbkIICL2BL4E7Aq8t7lgeTHtZwEPRsT+mXnzRA5oi5ckSep5mXknMACcFNFy9tu/BL4JnA0cN9HjmHj1hk6Tq0qSNCNFxEBErGy4DXQqX7Zi9QN7ttj8GuDL5e01E63Tdnc1RsRiYN72xukBC6fqwJ0mV5UkaabKzEFgcHvjRMTjgIOAH2ZmRsSWiDg4M6/tNlYVY7zmZeaSCuLMaLY4SZI0vUXE/sAwcCfw1IZNrwJ2B35V9kLuStHq9e5uj2FXoyRJ6nkR8Vjgs8CnMre5WvprgBdn5sLMXEgxyH5C47w8q1GSJPWq+RGxCpgNDAFfBD7SWCAiFgL7AQ9PI5GZv4qI+yLi0My8spsDmnhJkqSelJn9HbatAFaUi/u02H7IRI5pV6MkSVJNTLwkSZJqYuIlSZJUE8d47SA6zJe2sNtYedc9212fh2Otu72yWPRV+ztgZO0vKosVD9xdWazcsqmyWLMOPrKyWABDV3+vumAVPp+5/oHKYgH07b53ZbFyqLrnk3k7VRaq79F7VRYLgCceXFmo4YvOqSxW7Pm4ymIB7DV/QWWx5vRX9xU7q2+ksliPH2k7rGli8bYMVxZr9qxq6zYdmXjtOFrOl+b8YJIk7TjsapQkSaqJiZckSVJNTLwkSZJqYuIlSZJUExMvSZKkmph4SZKknhMRF0fE0U3rTo6I70TEhohYFRE/j4jPRkRfRCyMiGu397gmXpIkqRd9GTiuad1xwIeAmzJzEfAHwNOAP6/qoCZekiSpF50LvCQi5gBExEJgb2DtaIHMHAIuAw6s6qBOoDoDdJjVfiutJmCVJGmmiogBYKBh1WBmDgJk5j0R8SPgGOAbFK1dXwGyYf+dgBcAp1VVJxOvmaHlrPaSJPWyMska7FBktLtxNPE6sVx/QESsokjCvpGZ3ylbxLabiZckSepV3wA+GhGHADtl5o/LBGt0jFflHOMlSZJ6UmY+CFwMnEnR+jXpTLwkSVIv+zLwDMaXeD05Im5tuL2y24PZ1ShJknpWZp4HRMPyGuDgFuXWALO393i2eEmSJNXExEuSJKkmJl6SJEk1cYxXD8oNm6oLNm+n6mJtXF9dLIDZ0/Tl3Vfd752hq79XWSyAWc94YWWx8v67K4s1cu8dlcUCiDnzq4u155MqizVy2w3VxbrntspiAbBqRWWhYvZ2D5N5xPqHqosF3L3pvspirdv4QHWxZs2pLNbv5uTYhbpw85z+ymLd1V9t3aYjW7wkSZJqYuIlSZJUExMvSZKkmph4SZIk1cTES5IkqSYmXpIkSTUx8ZIkST0pIoYjYlXDbXFEHBsR5zWUOTUiVjcsvywilpf/7xIRZ0TETRHxk4j4cUS8udMxp+lER5IkSZNuQ2YualwREY8FPtew6rnA/RGxZ2beCRwOXFZu+zxwM3BQZo6U+76x0wFt8ZIkSSpl5l0UidaB5ap9gK9SJFyUfy+NiAOA5wDvycyR0X0z8186xTfx6gFl0+mSqa6HJEl1ioiBiFjZcBtoKjK/qavx1eX6S4HDI+LJwI3AFeXyLOAZwFXA04GrR5Ou8bKrsTfMy8wlU10JSZLqlJmDwGCHItt0NZYuo2jZ6gcuB34EnAY8E7g+MzdGxFY7RMS7gVcCe2bm3u0OaIuXJEnS1i6lSLwOBy7PzAeAecCRPDK+6+fAMyKiDyAzP1gmcbt2CmziJUmStLVfAHsDRwA/LdetAt5KkZSRmauBlcAHIqIfICLmAbFNtAYmXpIkqVc1j/FaCpCZCVwJrMvMLWXZy4H9eaTFC+BNwGOA1RGxErgQ+D+dDugYL0mS1JMys7/Dtpc0LS8DljWtux94SzfHtMVLkiSpJiZekiRJNTHxkiRJqoljvGaoiFhMceorwMKtNvZ1POGiO93NG9dZX8W/A4aHqos1UuH93LK5ulgVP2Z5/92VxYpd96gsFg9UVy8A+iv86OufXVmo3PhQZbFi3s6VxQIoxhpXpL/tsJrubdkydpkuDFf5mVah7HyiXFeGqfC5BMY4ia8rI5XXbfox8Zq5Hp401VnrJUmaHuxqlCRJqomJlyRJUk1MvCRJkmpi4iVJklQTEy9JktSTImK46ZJBiyPi2Ig4r6HMqRGxumH5ZRGxvPx/t4j4r4hYHRE3RcRZEbF7p2OaeEmSpF61ITMXNdyWUlyL8bCGMs8F7o+IPcvlw3nkeo3/AdycmQdm5gHAapouK9TMxEuSJKmUmXdRJFoHlqv2Ab5KkXBR/r203P4s4P0Nu78PeEZEPLldfBMvSZLUq+Y3dTW+ulx/KXB4mUDdCFxRLs8CngFcBTwNWJWZw6PByv9/Cjy13QGdQLU3bIyIJaMTqkqS1AsiYgAYaFg1mJmDDcsbMnNRi10vo2jZ6gcuB34EnAY8E7g+MzdGTGzGfhOvHlD2WUuS1FPKJGtwzILbuhR4B0Xi9e+Z+UBEzAOO5JHxXT8HFkVEX2ZxramI6KNoEftJu8B2NUqSJG3tF8DewBEUXYcAq4C3UiRlZObqctt7GvZ7D3BRZt7SLrCJlyRJ6lXNY7yWAmRxVfgrgXWZOXol9suB/XmkxQvgjcBB5VQSd1GcDfnWTge0q1GSJPWkzOzvsO0lTcvLaJoqIjPvBf4aoByI/23gaOD8dnFNvHZ8G4GnTHUlJEnqZZl5A3DgWOXsatzBlQPn10x1PSRJ0thMvCRJkmpiV2MPivlzqws2Z151sWbNqS4WwNDm6mLN26myUDGr2rddrn+gslgj995RWSweuLuyUP37VNubnvdXV7es8HUW83auLBYAsyt8T22p8v00v7pYW7aMXaYL8/qr+3yc1bexsljzGR670DjtlLMriwUwL6uLNTcnNjfWjsQWL2kHVmXSpRmmyqRLUmVMvCRJkmpiV+MMERGLgcZ+v4VTVBVJktSGidfMMa/xWowRsaR9UUmSNBXsapQkSaqJiZckSVJNTLwkSVJPiojhpms1Lo6IYyPivIYyp0bE6obll0XE8vL/B5vinRARn+p0TMd4SZKkXrUhMxc1roiIxwKfa1j1XOD+iNgzM+8EDmfrC2V3xRYvSZKkUmbeRZFojV53cR/gqxQJF+XfSyca3xavmeuI5jMbG896lCRppouIAWCgYdVgZg42LM+PiFUNyx/KzHMoEqvDI6IfuBG4Ajg6Ir4FPAO4aqJ1MvGauWaZaEmSelmZZA12KLJNV2PpMoqWrX7gcuBHwGnAM4HrM7PT9aA6XkTJrkZJkqStXUqReB0OXJ6ZD1BMUn4kW4/v2hARjdfnWgB0vBisiZckSdLWfgHsDRwB/LRctwp4K1uP7/oB8DqAiJgPvAq4uFNgEy9JktSr5jdNJ7EUIDMTuBJYl5lbyrKXA/uzdYvX3wJ/WY4TuwL478y8pNMBHeMlSZJ6Umb2d9j2kqblZcCypnW3AS/t5pi2eEmSJNXExEuSJKkmJl6SJEk1cYxXL5o7Z+wy4xSz5lYWK3O4slgAzK7wfs7ftbJYuXlDZbH6dt+7slgAMWd+dcH6q/t4yfs7np3dtdh1j+qCVfh85rydK4sV8x5VWSyAPOBp1QVbd0d1sXaq7jEDyM5TMHUXK6uLtVP/UGWx+qnusxFg/kh1sXbti+qCTVO2eEmSJNXExEuSJKkmJl6SJEk1MfGSJEmqiYnXzLVmqisgSZK2ZuI1c62Z6gpIkqStmXhJkqSeFBHDTddqXFyuXxERNzSsf0XDPn8eERkRT5nIMZ3HS5Ik9aoNmbmozbbjM3Nli/WvAX5Y/n1vtwe0xUuSJGkcImIX4AjgROC4icSwxWuGK5tN5wFk5pKprY0kSfWJiAFgoGHVYGYONizPj4hVDcsfysxzyv/PiojRS1O8IDPXAccCF2TmLyNiXUQ8KzN/3E2dTLxmvnkmXJKkXlQmWYMdinTb1fga4OPl/2eXyyZe09TGiFiyHfsvrKgekiSpSxGxAPhT4PcjIoF+ICPilOziwpwmXjXJzKXbs/92Jm2SJGn7vAL4Yma+ZXRFRPwA+GPgkvEGcXC9JEnqVfObppPo1EjyGuDrTeu+Wq4fN1u8JElST8rM/jbrj2yx7k9arPtEt8e0xUuSJKkmJl6SJEk1MfGSJEmqiWO8etGmzZWFyhyuLBabN1YXCyCq+12RmzeMXWi8KoyVQ5sqiwUQez6pumD9sysLlUPVvWaBSp+DmDO/slhsqe75HPe57eN1x9rqYvW3HFYzMRsrfG9OY+uHq/u6Hp5d7atjQ19UF6u6UNOWLV4z1+i8YQunuB6SJKlki9fMsBHY6irpo/OGOf+XJEnThy1eM0CZZK2Z6npIkqTOTLwkSZJqYuIlSZJUExMvSZKkmph4SZKknhMRF0fE0U3rTo6IMyLioIj4VkTcFBE/Lss+ryxzQkR8qvy/LyK+EBFnRsS4JsMw8ZIkSb3oy8BxTeuOK9d/GxjMzAMy81nAO4D9GwuWidZngdnAmzJzXBOkOZ2EJEnqRecCH4iIOZm5OSIWAnsDBwGXZ+by0YKZeS1wbdP+nwAeA7w6M0fGe1BbvGa+jRGxxPm8JEm9JiIGImJlw21gdFtm3gP8CDimXHUc8BXg6cBPxgj9WuAQ4LjMHOqmTrZ4zXCjE6lKktRrMnMQGOxQZLS78Rvl3xOB4xsLRMTXKVrBfpmZf1mu/gnFxOXPAS7tpk62eEmSpF71DeAFEXEIsFNm/hi4jqI1C4DM/AvgBGBBw37XA68CzomIp3dzQBMvSZLUkzLzQeBi4EyK1i+ALwF/FBEvbyi6U4t9LwPeBnwrIp443mPa1ShJknrZl4GvU57hmJkbIuKlwEci4mPAb4EHgA8075iZ34yIPYALIuKPM3PdWAcz8ZIkST0rM88Domnd9cCftSm/DFjWsPyfwH+O93h2NUqSJNXExEuSJKkmJl6SJEk1cYxXD8qHNlYXbLireePqiwWwZXNlobL/7spisbnCx3/eNifabJeR226oLFZufKiyWDFv58piAWSV8bZsqixU/4F/WFms4duurywWQD5wf2Wxom9cl7QbX6xnPq+yWACz4ruVxdp59rzKYt0f1X1d91Hd4w+wqcJwD8a4J4DfYdniJUmSVBMTL0mSpJqYeEmSJNXExEuSJKkmJl6SJEk1MfGSJEmqiYmXJEnqSRExHBGrGm6Ly/UrIuKGhvXnluuXRERGxIENMU4u1z17PMd0Hi9JktSrNmTmojbbjs/MlS3WX0NxQe3Ri2a/ErhuvAe0xUuSJGn8zgOOBYiIA4D7gHHPsm2L1wxUNpVuM2VyZi6pvzaSJE2NiBgABhpWDWbmYMPy/IhY1bD8ocw8p/z/rIjYUP5/YWaeUv5/P7A2Ig6mSMDOAd4w3jqZeM1M80yyJEm9rkyyBjsUmUhXI8DZFN2NRwMvoIvEy65GSZKk7nwL+Gvglszs6kKmtnhJkiR1ITPXR8S7gF92u6+JlyRJ6lXNY7wuyMzF5f+NY7zuzswXNu6YmWdP5IAmXpIkqSdlZn+b9Ue2Wb+km/KtOMZLkiSpJiZekiRJNTHxkiRJqoljvGaOjRGxpPx/YaeCMX9udUcdGaku1pbN1cWqWMyu7jHLrO4x63v0XpXFAhi557bKYsW8nSuLxew51cUCYt6jKouVlUWC4duuryxW/z5PqSwWQM69pLpgFb7Xc91vKosFsHN/de/1TSPV3c/ZWd0rbZcKP7YBHj9UXd2yB9qDTLxmiMxcOvp/QwImSZKmkZmfWkqSJE0TJl6SJEk1MfGSJEmqiYmXJElSTRxcL0mSelJEDAPXNKw6OzOXRsQKYC9gI/Ag8MbMvKHd+m6OaeIlSZJ61YbMXNRm2/GZuTIiBoDTgZePsX5c7GqUJElq7xLgwC7Wd2SL18y0sdVcXu0u7ilJ0kxUtkoNNKwazMzBhuX5EbGqYflDmXlOU5iXsXV35FjrOzLxmoEaJ1OVJKlXlUnWYIcinboaz4qIDcAa4B3jWD8uJl6SJEnbOj4zV3axflwc4yVJklQTW7wkSVKvah7jdUFmLp7MA5p4SZKknpSZ/W3WH9nN+m7Y1ShJklQTEy9JkqSamHhJkiTVxDFePWj4jnsrixVXX1VZLHbZpbpYQPRFZbFy4/rKYjE8XF2sJx5cXSyAVSsqC5WZlcViy+bqYgF5wNOqC3bH2spC5QP3Vxdr7iWVxQKY9ZKBsQuN0+bP/GNlsbhrXXWxgNl91X0tzu2bU1msPWdtrCzWT/p2qiwWwD4Vvtd3G6nuc3u6ssVLkiSpJiZekiRJNTHxkiRJqomJlyRJUk1MvCRJkmpi4iVJklQTEy9JktSTImI4IlY13BZHxLERcV5DmVMjYnXD8ssiYnn5/5qI2KObYzqPlyRJ6lUbMnNR44qIeCzwuYZVzwXuj4g9M/NO4HDgsoke0BYvSZKkUmbeRZFoHViu2gf4KkXCRfn30onGt8Vrx3FERCzZngCZuV37S5K0I4mIAaDxsguDmTnYsDw/IlY1LH8oM8+hSKwOj4h+4EbgCuDoiPgW8AxgwpdtMfHaccwycZIkafzKJGuwQ5FtuhpLl1G0bPUDlwM/Ak4Dnglcn5kTvoaTXY2SJElbu5Qi8TocuDwzHwDmAUeyHeO7wMRLkiSp2S+AvYEjgJ+W61YBb2U7xneBiZckSepd85umk1gKkJkJXAmsy8wtZdnLgf3ZusVrFrCpmwM6xkuSJPWkzOzvsO0lTcvLgGWjy+W0E1F2Q46bLV6SJEldiIiXA/8fcGq3+9riJUmS1IXMXA4sn8i+tnhJkiTVxBavHjR09+bKYs1+3OMri5W/vaOyWAA85jGVhYonPrmyWLm+q+EAHQ1fdE5lsQBi9uzqgvW3HTrRvXnzq4sFsK7C11qF9zP6orJYbKnufQ6w+TP/WFmsOX/z/spibf7saZXFAvjtpt9VFmvjUHXPwerZO1UW64EYqSwWwHVzq2vD2Vhx3aYjW7wkSf9/e3ceLVdVp338+7u5CUlADJMMYhNBMCiQINoizauCYstSEVAUEZRWzKtNg+gSAUcabUTACQHxqoiKLYpDo9Kgr6DiAC1TIEyiQBiUIQRaCGa893n/2KeSSqVu3TpVO6fuTT2ftWqlzqmq5+yqVNX91T777GNmFXHhZWZmZlYRF15mZmZmFXHhZWZmZlYRF14Tx4JeN8DMzMy648Jr4ljQ6waYmZlZd1x4mZmZWd+JiGdFxD0RsWmxvEmxPDMibmly/wuK22vndTy2k+16Hi8zMzPrO5Luj4gvAacBc4t/h8Z42PGSvt/Ndt3jZWZmZv3qc8CeEXEcsDdw5rreoHu8JpCIOBGY2unjJZ2crzVmZmbjW0TMJfVm1QxJWtWrJWlFRBwPXA68qlhuFXlGRHykuH6EpPll2+TCa2KZ6uLJzMysPUWRNdbuw/2BB4FdgP83xn29q9HMzMysExExB9gP2BN4X0Rsva636cLLzMzM+k6kfYpfAo6TdB9wBhWM8XLhZWZmZv3oXcB9kmq7F88Fdga2A54bEQ/UXQ7JtVGP8TIzM7O+0zj+S9Iw8IJicXKTh1ycY7vu8TIzMzOriAsvMzMzs4q48DIzMzOriMd4TRxLgVk5gjSSI6XIempxvrAR5csC9Pen8oXdem22KC1blpCfXG8AAB7CSURBVC0rnrFltiwAcr5mK1aMzyyA6Rvmy1q6JFtU7P7SbFla9NdsWQAsXJQtavl5H8uWNeXdp2TLApjyhWxjqLP+hV3WelLPUvIlJRtkTHyM4WxZ45V7vCYISacBC3rdDjMzM+ucCy8zMzOzirjwMjMzM6uICy8zMzOzirjwMjMzM6uICy8zMzOzirjwMjMzs74UEcMRMa/uMjMiDo6IK+rus3dx22BEHBkRZ3ezTc/jZWZmZv1qiaQ5DesWRMRREXEY6fyM5wLvlrQyMsyn5sLLzMzMbE3/BvwCeD5wraTf5wp24TWxLI2Ikzt9sKSOH2tmZjbRRMRcYG7dqiFJQ3XL0yJiXnH9HkkHAUi6OyK+SyrAdsjZJhdeE0gxe72ZmZm1oSiyhlrcpdmuRiJiErAfsBjYDng0V5s8uN7MzMxsTf8KzAfeCZwTOQZ3FVx4mZmZmRUiYivg/cAHJV0O/AU4Kle+Cy8zMzOz1T4LnC5pYbF8HPDhiNg0R7jHeJmZmVlfkrRRk3WHNSzfD8wsFi8oLh1zj5eZmZlZRVx4mZmZmVXEhZeZmZlZRTzGqw+dMn/rbFkXXXVZtqwNJk3OlgWweMXSbFnTBqdkyxqRsmVtPS3LWM9VHl32t2xZwxrJljV10gbZsgBEvv+DnAbjZ9myNsz8mk0eyPfn4uFlj2fLmvKFQ7JlAdx2+8XZsoYfuC1b1vzXfC1b1ptO2DZbFoAezjbFFQPbPztb1njlHi8zMzOzirjwMjMzM6uICy8zMzOzirjwMjMzM6uICy8zMzOzirjwMjMzs74UEYuLf2dGxJKImFd3eVtx24KImF+3fq9utunpJMzMzMzgLklzRrltH0lZ5s1wj5eZmZlZRdzjZWZmZgY7RMS8uuVjJP2muP7LiBgGlkl6cTcbceE1wUXEicDUdu4r6eR12xozM7PxIyLmAnPrVg1JGhrl7pXsanThNfFNdUFlZma2tqLIGq3Q6gmP8TIzMzOriHu8zMzMzNYe43W+pLNyb8SFl5mZmfUlSRsV/y4Apo1yn5k5t+ldjWZmZmYVceFlZmZmVhEXXmZmZmYVceFlZmZmVhEPrm9QZkLScWJm2Qc8puXZNr5oyZPZsiJbUjJpYFK2rCUr871mA5HvmU6ZlPcjvGhpvv/PnAYHlmbNk5Q1L5cNJ+f76lk2ku89C7DBwJRsWUszfp5y/xUbfuC2bFmTtn1etqzrBzbMljVr/p+zZQGMLFmRLWtwxcpsWeOVC6+1TagJSSPi5F63wczMzNrjXY1mZmZmFXHhZWZmZlYRF15mZmZmFXHhZWZmZlYRD643MzOzvhMRmwFXFItbAcPAwmJ5J0nT6+77MeDgYnFXYH5x/SuSzimzXRdeZmZm1nckLQLmwKoZAhZLOrNYXtxw31OAUyJiEHhU0pxOt+tdjWZmZmYVcY/XxLe03bm8JtL8ZGZmZt2KiLnA3LpVQ5KGetUecOE14Uk6rddtMDMzG4+KIqunhVYj72o0MzMzq4gLLzMzM7OKuPAyMzMzW9P0iHig7vL+XMEe42VmZmZ9rfHgM0lNO6YkrQRmdLMt93iZmZmZVcSFl5mZmVlFXHiZmZmZVcRjvPrQhzdYmi3roE1fli1rm4F87QK4M6aPfac2PWdkSbYsKbJlDQ6MZMsCWDQ4JVuWyPc8pzGcLQtg+qSV2bL+Ppzva/SJyJc1WcqWBfCMwXyfzz9PzvfZXBb53mcA81/ztWxZ1w9smC3rnTeeki1r0cHvyJYFsOEu07JlxTZbZssar9zjZWZmZlYRF15mZmZmFXHhZWZmZlaRHAMK2j5J8wQxs9cNMDMzs/VT14XX+naS5vWsiDQzM7NxxLsazczMzCriwsvMzMz6UkRsFREXRcRdEXF9RPx3ROwUEWdFxC0RMT8iro2IZxf3XxARm3ezTc/jZWZmZn0nIgL4EfANSYcW62YDbwa2AXaTNBIR2wJP5dque7zMzMysH+0DrJB0Xm2FpJtIRdaDkkaKdQ9IejzXRt3j1QMRcSIwtertNp593czMbH0WEXOBuXWrhiQNFdd3Aa5v8rDvAb+NiP8DXAFcKOnGXG1y4dUbU10EmZmZrVtFkTU05h3XfMwDEfFcYN/ickVEHCLpihxtcuFlZmZm/ehW4I3NbpC0DLgMuCwiHgYOJPV+dc1jvMzMzKwfXQlsUOyOBCAidouIl0XENsXyALAbcG+ujbrwMjMzs74jScBBwCuL6SRuBT5FKrR+EhG3ADcDK4Gzi4cNAsu62a53NZqZmVlfkvRX4E1Nbvpi44qI2AIISU92s033eJmZmZm1EBEHAL8BTuo2yz1eZmZmZi1I+jHw4xxZ7vEyMzMzq4h7vPrQTU9uki3r1ozTwN6safnCgEdiebasu5XviS6JkWxZW41MypYF8PgUZcsaJl/WdE3OlgUwiSnZsoYn53ueA0S2rI3yvc0AuGFgerasJzN+BvK9YsmbTtg2W9as+X/OlrXo4Hdky9rsh+dnywJYftaHsuat79zjZWZmZlYRF15mZmZmFXHhZWZmZlYRF15mZmZmFXHhZWZmZlYRF15mZmZmFfF0EmZmZtZ3ImIz4IpicStgGFhYLO8kaXpEzARuB/4ITAGuAv5VUsdzorjwWtvSiDh5HW9j5jrONzMzsxYkLQLmABR/9xdLOrNYXlx317skzYmIQeBK4EDgh51u14VXA0mnrettVFDYmZmZWUaSVkbE74HndJPjwmuCiIgTga6mT5d0cp7WmJmZjX8RMReYW7dqSNJQh1nTgVcAH+umTS68Jo6pLpzMzMzaVxRZHRVadXaIiHmAgEskXdZNmAsvMzMzs9HdJWlOrjBPJ2FmZmZWERdeZmZmZhXxrkYzMzPra41jqCVtVPy7ANgl57bc42VmZmZWERdeZmZmZhVx4WVmZmZWEY/x6kPPn/a3bFl/Hn56tqyNFNmyAJ6mKdmyNhvOFsVwTMqWtdWKjA0D7p6Sr22Q7/9zqrJFATCt47OsrW3JQL7nuSzjR2CrlXlftGcqX96tG+T7zb9BxvcZgB5+NFvWyJIV2bI23GVatqzlZ30oWxbAlGNPzZa18soLs2WNV+7xMjMzM6uICy8zMzOzirjwMjMzM6uICy8zMzOzinhwfW8sjYiTSz5m5jpoh5mZmVXIhVcPSDqt7GM6KNTMzMxsnPGuRjMzM+tLEbF4lPVzI+KO4nJdRLy87rZfRcQfI+Lm4vazI2JGu9t04WVmZmZWiIjXAv8X2FvSLGAucGFEPLPubm+VtBuwG7AMuKTdfBdeZmZmZqudABwv6VEASTcAXweObryjpOXAB4F/iIjZ7YR7jNcEFREnAlPLPKbx7OtmZmbrs4iYS+qxqhmSNDTGw54PXN+w7jrgX5rdWdJwRNwEzAJuGqtNLrwmrqkupMzMzEZXFFljFVo5tH3uKu9qNDMzM1vtNmCPhnV7kHq91hIRk4BdgdvbCXfhZWZmZrba6cCnI2IzgIiYAxwEfLnxjhExGfgUcL+km9sJ965GMzMz61fTI+KBuuXPSvpsRGwD/C4iBoGtgNmSFtbd79sRsQzYAPgF8Pp2N+jCy8zMzPqSpKZ7/iSdB5xXFF5fB06JiMOVvLybbbrwMjMzM2tC0krgiJyZHuNlZmZmVhEXXmZmZmYV8a7GiWNpw4myZ3YatHzFpK4bU/PwpJXZsgaYnC0L4JHI17bBjB+VFdmSYPJgvv9LgIWTlC1rhHxZG6jtKXLasvFAvrwlGZu2OEayZSnz7+qnj+R7okszPs/HGM6WBTCw/bOzZQ2uyPcdFNtsmS0rt5VXXpgta3Dfw7NljVcuvCYISafVLzcUYWZmZjYBeFejmZmZWUVceJmZmZlVxIWXmZmZWUVceJmZmZlVxIWXmZmZ9aWIGI6IeRFxU0TcEBF7FetnRoQi4pi6+54dEUcW1y+IiHuKx90ZEd+MiG3b2aYLLzMzM+tXSyTNkTQbOIl0wuuaR4D3RsSUUR57fPG45wI3Ale2uO8qLrzMzMzMYGPg8brlhcAVwNtbPag4f+PngIeA/cfaiOfxMjMzs341LSLmAVOBrYF9G27/NHBZRJzfRtYNwCzgklZ3cuE1cTXOZD8mSaXub2ZmNpFFxFxgbt2qIUlDdctLJM0p7vsS4JsRsUvtRkl3R8T/AIe1s7l22uTCa4JqnMnezMzM1lQUWUNj3jHd9+qI2BzYouGmU4HvA78eI2J30q7JljzGy8zMzPpeRMwCJgGL6tdLugO4DXjdKI+LiDiWtKvy8rG24x4vMzMz61e1MV6QdhW+XdJwxFp7Df+DdORivTMi4qPAdOAaYB9Jy8faoAsvMzMz60uSJo2yfgFQP9brJur2Eko6stNtelejmZmZWUVceJmZmZlVxIWXmZmZWUVceJmZmZlVRZIvvjS9AHPX96zx3DY/T79mfp7jM2s8t228Zo33tlV5cY+XtTJ37LtM+KzceeM1K3deP2TlzhuvWbnz+iErd14/ZOXOy922yrjwMjMzM6uICy8zMzOzirjwslbaOr/VBM/KnTdes3Ln9UNW7rzxmpU7rx+ycuf1Q1buvNxtq0wUg9TMzMzMbB1zj5eZmZlZRVx4mZmZmVXEhZeZmVkFIuI9vW6D9Z4LL5uwImKwx9vfuKLtvChj1htyZVl5EbFJr9tgPfWuXjdgNBFxYER8ICL+uddtWd95cL1lFxHbAU9JejQi9gT2Bu6S9KMOsn4rae/i+rckHVF32w2SXlAi6+2SvtFk/WTgm5LeUrJtdwEflnRRmce1mf084C3F5X8lvTBT7n2S/iFHVpft2BHYuVi8QdIDHWR8Eaj/AhPwKPBLSb/tvpWrtrM38BZJR7d5/69KOqrJ+mcBl0napeT2W77HJd1QMm9H4ExgB2A+8AFJfymTUZe1aYubl0l6qs2cf5N0dnH9+ZJu7aQ9dXmN7401SDq2ZN6ekq7ppk1FTqnvrDbycr3+5wLPB34PvAL4iaRPZGgiEbErMKtYvF3SLR3mDAL712cBl0ta2X0rq+XCy4iI+YzyBww4U9LSElkfBY4sMi4CXgn8CngxcJOk40q27UZJuxfX1/jSqr+tzawbgPMkDdWt2xD4EXC/pHeWbNt2wOeBjYD3SPpzmcc3yZvJ6mJrBbAd8EJJC7rJbdjG/ZKeVfIx7wQ2lXRGsfwX4GlAAMdLOq9E1gzgAmA2cGOxejbwC+DdwD9LurzNrLc3Wb0p8Cbgu5I+3267mmTvDhwGHALcA/xQ0hfbfOwFwCDwNkkjxbqdgUuBUyRdULItI8AtpM8kpNe9RpL2LZn3G+CbwFXAAcBLJB1cJqMu6x7SZz2a3FzrkT5R0rfHyFn12c5RnIzy3lil2Q+wEu27WtJLOmzXSuCJZjelZqlVIdUsL9frfwswW9JwREwHfiNpjzJtaZL5dOAS4FnAzUUbdwXuA14vqdnrMFrWM4ErgQdJ3xsB7A5sBewj6a/dtLVyvT5nkS+9v5D+wDdedicVFV8pmXUbMAWYQfqCmV6sHwRu6aBtNzS73my5jaxNgT8AxxbLWwDXAqd1+frtDzwM/BT4ce1SMuNq4Fbgo8COxbp71sH/9X0dPOZaYLO65RuLf6cCvy6Z9S3gZGCgbl0Uz/unwJ0ZnuO0WhtLPm4n4OPAHcBvgWOAezvICdIcQxcDk4C9gPuB13b4fI4r2nMpcASwUZevz7yG5VKfo5Lb2gK4rY371X/OS//fNckbaHHbjA7ybmx2vZOc4j3R9DIeXv9c7wngLFLPav1nfQA4HfhiyawLgOOarD8W+Ebu121dX3o6RsbGB0n3Nll9L3BjRNzY5LZWlkpaDiyPiLsk/b3YxsqIWN5B82ZExEGkD+yMiKj9Mg/g6WWCJD0WEa8ELouIbYDXk3rAvtBBu1IjIp4LfAD4DXAOMNJh1MPAM4EtSV+Wf6LFrpIx2tTYg7nqpiK/dKSkRXXLFwNIWhoR00pm7am63cVFjoBPRMQjwD910L41SFoS0awDYEx3kP4fX6ui9zIi3tfB9gXMjYizSL292wGHqMNdVUo9d5+PiO2BQ4ErIuJe4FRJ8zqInFr06NVepGn1yyqx6zIi/ou0e+p3wLXFZ7++7Qsj4oQ2ouo/5xvXfc5rOT9st02F6yLiPZL+p6G9RwEfArYvmTdQjM8bqLu+6k0m6bF2gyQNl9z2qIpe9/+V9LdieR/gQGABcE6J139WRNxciwV2KJZrPXG7ddC8VwK7qej1JQWNRMSHSLu4y9hT0pGNKyWdFRF/7KBtPeXCy8ZS9gCMWnEUrPkFWrpQKvyatDukdv11dbddVSaori1DwGeBK4D7a+vLfrlHxGmkL7n3SbqszGMbSTqw6Jo/GDi5GIczIyL+UdIfSsa9tpu2NDGjfkHSqQARMQBsnnE7T0j6UzcBxTiQI4DSY8ZIr/2hwC8j4nLSrvLSFVzd+KIAngfcABwWEYdB+fFFNZLujohLSD16R5B66DopvB4kvf9rHqpbFlBm1+VXST16/wHMjojbWV2I/V7Sw5J+0kZO/ef8Ktb8nAsoW3gdCwxFxB+AE0jF77mk98VLS2ZB+u66ntXvh/riVLRfyI36PCLiOJXfPf494CDgbxExh/Sj6FPAHNLzParN13/nse9S2nI1GX9V/AhfVjJrSYvb/l4yq+c8xstGG7y7CXA4sFjSMSWyvt7qdkn/UrJ5rbb1Bkk/KHH/Vm2TpHeU3P4ngU9IKvsl0k72lqSxSocC/6Dy47IOBJ4DzJf0sy7bci7wmKSPNKz/JLC5pHeXyPoGcBfpdVPd+o8AO0l6W4msJ1m7Z28J6Y/4cepw3Ecx7u/1pLF2+5LGQ/1I0s/bfHzu8UW1nq7Xk3ZZXgRcKqnVH6PKRcQk0hCFl5PG6z1b0qQMuaU+53WPGyTt1j4aWAy8s93/w17o5MCXiLi51hsVEWcCI5I+WPwomtdhT1UWEXEH6TPU+OMlgAsltV3sRcTdpD0La90EnC5ph44b2gMuvIyI+GXDKgGLSLtJvtzsV0uH2+noC7RFXrYj9DppW0TsRBqv8By6PDpsjO1sN8ru4NHun/UIpaIQ+SrwIuCmYvVs4DrSL+rFJbI2Br4GvIDVvTVzSGNf3qESA26rUOxSOgR4s6RX9KgNI6TByZeQxk2u8aUt6bPNHtcib0fgDDK9byNic1Kv117AnqSxf/OAq8sWmaPkd/Q5j4hDST1x3wX2I72Gx5fZLViXdbikC4vr/yTpd3W3rToisxsdHvgyX9KuxfUbgJNqP7Tqi7I2cp4Cmu0Cre1qLD11TpO/K2uQtE+JrMp+0FfBhZe1lLNYylkoFXmlv6haZHXyazPn0WE/ofXh7weMdluTrOxHKBW525MKOkgDdu/qImsH0m64jrPGGl/UQd7Btd3NEbGJpMc7zNkb2F7SN4vl75MO7AD4pKQrS+adTOv3xr+XzMv5vv0T8DfgB8A1pP+HtgvxNrfRSUHyC2ApcIyke4oeoKNJByp8WnVHNreZN+pRl43LnerwO+gLwNak3ccHkHqNV0TE1qQfXG1NQxMljxC37niMl43lc6Qv1Rw6GvHcQs5fDZ207WmSvlJcP6P4xdmpM7t4bKPltQG8kv4eHY40rynGFf2uuPysmwInZxZtjC8qmfcRVo/BuYLUK9eJfycdEVnzXNIUKxuSBnaXKrwkndxhO0aT8317PqmX6w2kqQJ2iYirSUf+5RpE3snn/BzVzRtYDPD+YkRcDHyGNM6zjBjlerPl0UNa9yyVPVAF4GzgzcBTwN6SVhTrdwRa9hI1WCc9MEUBeDSrf2RdRzqgqVSvY0S0GoIgSd/qsIk94cLLxpKzWCr94Y78R+iNppMvnmZHh636Y13m6DBJv65dj4gtinULO2gT5D9C6SvkK3CyZUn6KWkKisbxRWcAzyYdol9Gqz+uZWws6ba65T9Jur5o56fKhkXE9yS9qbj+aUkn1N32c0mvKhmZ7ahGSaueT7HrfS/S7Ox7R8Sjkl7WTs46+Jxf32ylpIeAt3aQ1zjP4Wi3jeXOzD1LnyPtXmw8SvBx4NWkI63b8YyIeP9oN5bdnQ0QES8DLiQV5xcUq/cgHbxyIGlOuyNGeXij0c7ecQDpaHAXXrZeKVWQrIMv0FZH6JXtls/dtgdJv55rf8AeYs2eq7ITW36c1FMykBZjJWm+m1NKtutXwKmkI7i6/iWbs8DJXSyNMr7oF6R50cqqFSADrF2clClIGo8Crd+N18n7bMe66/uRjtKr2aKDvPqjGBuXyx7VCKzaDf2PpImS9wSeQZp4tl3ZPueF/6LosYyIH0jq9lRZs+p+vOzQ8MOmzNQUuXuWtmxSdCFpfqQJmds1iTQRdM4f2mcAB0iqn5LoxxHxI9JY0bbPZFJ/gFfRg/9W0ufgGtKPuAnFhZflLkhyf4H+EjgP+Ext10VxxN9nSKeOKHMqndxtO4E04/2DRbveTtrlsoB0NFXbil+bewMvknRPsW574EsR8T5JnysR9zPSl97WpMPNv9Pw5VdazgInV1bD+KKfkcZPdTO+qL4AaSxOyhQkd0TEayRd2tDe1wKdzDnU6o916T/kkl7eQRuaKv6Ivpg06P/3xeUsSbeXjMr5OYc1C4iyc3Y1k2u6hdw9SzNa3FZm1+WDHfzAG8tGzb53JM2LiIeBUgPii6NUjyQd3XgN8EZJE24OL3DhZUnOgiT3F+gewGnAvIh4L2kcyftJRxO2PfXAOmrbeaRJAomIl5LmzzmGdJTeEPDGEllHAPtJqp0WpjZv0+HAz0m7FNqiNCHsFyJNrngocH6kiU6/QyrC7izRrqwFTuZiKev4oowFyfuASyPijaye72kPUqHZyRxr0+t64up3C3Y0LigiPijp9OL6IZIurrvtVEkfKhH3deBd9e/bDuX8nEPrXYPlw0ocVTyG3D1L10XEu+rG7AEQaaLYprtbR5F7/G3RjLUPUol0fsmVqptYtY2go4H3ksZevloZT6PWCz6q0WpzpIxakLR7ZEzxuE1IX6B7kT4o9V+gXyrzYWvIfS+p+PgraRbjTk6qnLVtEXGTpNnF9XOAhbWB0BExT9KcElm3aJSTJ7e6rUT+7qRCZTeVnFspIk4iFTjPBO4k9Ux1VODkzGrIrY0vegmp57Dt8UV1GVkKkuK98B3SBKe1o0BvBf5TJc57Wpf3K1of1dj2YflFXrYj9DIXcVk+50XOMGnAea04rU2y2dH0CNF8zrjSebmOgKzL25K0y245qwutF5JO23ZQMaatnZxNyw54byNzLmm83wdY8wfIp4HzJX25RNYI8AiwkDX/H7qZWb93NA7OW+RLby+kyVK/TJrTZ19SUXIv6WiUUc95Nkbme0mnz3kA2LaLts0o2jYPeBXp/JHzgX27yMzVtluAweL6HcBL628rmTXqudFa3TZG5iBpBvBvk3adXUQ6OW0375WdSN39XyYVE6XO1bguski7kg4HvkQaO7IQ+GkHOVnOC1q8v64m7XI+Hdi9m9c894UW5x1sXK7wNcv+OR+Pl7Kvb4ncfUi97ceMp9eM1MN7FWleyEeL66/rIGe7VpdeP8/Sz6fXDfBl/FxyFCS5v0CB2ozFg3Xr5pDGknynx237MOlovEtIE4DWepCfA/yuZNYwaZxM4+VJYEXJrP1IvVsPkU7YfRiwYYb3R5YCJ1cW6Zf+X0lF7/nAUcDOXTy/bAVJ8ZjtSOMAbyza+HHSPEtlcz5Yd/2QhttO7SAv54nns7xmOT/n4/kCbNrrNoyHC01OeN1Bxua179yJdul5A3zp/SVnQZL7C5QWBSBpbEnP2lY8fk/SudI2rFu3E/CCHv5/XlkUIZtkystW4GTOOoB0yqJcr1u2gqRJ9u5FATbc63axush/ElhJd0V+rh6vbJ9zX8b/Bbiv5P33JB2t/cPis3QL6YflI6QxXz1/TmUuHuNltTFe5wKfV3F6oEgnXD0XuFfSW0pkbatRxmU0GwRapfHctvEsIg4gzbHV7QDq3Fm5xxe1Ghc0VdLkknmDwP6kAxxeQfrD8R1Jl5TMWTWreDTMMN64XLXcr5n1hyh5NoKIuI40+fDTSQcu7S/pmoiYRfpMTahZ9wd63QAbF14q6UzVnZNR0jxJe1F+lu1RB8P2urAZz20b52bVCqWIOKT+hog4tYdZh9ZdP6nhtleXzELSJEkbS3qapMHiem257QIiIvaLiPNJu+zfBVwK7CDp0LJFV61po1xvtlypXK+Z9Z2y79tBST8vflw9JOkaAEl35G/auufCy1yQ2FhyFjg5s7KcxmUdOIm0+3pnSQdI+k9JT3WRNzsiniiOrNutuF5b3jVLi80yi4gn696rTzS8b7cpGVd/xPmShtsm3G47z+NlZmPJWeDkzBqXPUGSSs/8PkZe2VMfmfWcpKdljJsdEU9Q7NIurlMsT824nUq48DKzseQscHJmrVdfxmbW3Pr248OD682spZwDqD0Y28z6nQsvMzMzs4p4cL2ZmZlZRVx4mZmZmVXEhZeZmZlZRVx4mZmZmVXk/wOP5z0NYbCGxgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 720x720 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(7, 7))\n",
    "g = sns.clustermap(stock_returns.corr())\n",
    "g.fig.suptitle('Correlation Matrix for Asset Returns', fontsize = 20)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Question-16.2\n",
    "\n",
    "### Using the clustered covariance matrix V from exercise 1:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Each class in mlfinlab's portfolio_optimisation module has an **allocate()** method which takes the raw stock prices, calculates the returns and finds the optimal weights. There is also an option to resample the prices and so we will simply pass the raw stock prices without any downsampling. For our case, we will specify 'W' for weekly resampling."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (a) Compute the HRP allocations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "hrp = HierarchicalRiskParity()\n",
    "hrp.allocate(asset_prices=stock_prices, resample_by='W')\n",
    "hrp_weights = hrp.weights.sort_values(by=0, ascending=False, axis=1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>BND</th>\n",
       "      <th>CSJ</th>\n",
       "      <th>TIP</th>\n",
       "      <th>IEF</th>\n",
       "      <th>LQD</th>\n",
       "      <th>XLU</th>\n",
       "      <th>TLT</th>\n",
       "      <th>DIA</th>\n",
       "      <th>XLE</th>\n",
       "      <th>XLB</th>\n",
       "      <th>...</th>\n",
       "      <th>EWJ</th>\n",
       "      <th>XLK</th>\n",
       "      <th>VPL</th>\n",
       "      <th>FXI</th>\n",
       "      <th>EEM</th>\n",
       "      <th>EWG</th>\n",
       "      <th>EFA</th>\n",
       "      <th>EWU</th>\n",
       "      <th>EPP</th>\n",
       "      <th>EWQ</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.36356</td>\n",
       "      <td>0.27426</td>\n",
       "      <td>0.11938</td>\n",
       "      <td>0.08572</td>\n",
       "      <td>0.04817</td>\n",
       "      <td>0.02016</td>\n",
       "      <td>0.01346</td>\n",
       "      <td>0.00848</td>\n",
       "      <td>0.00792</td>\n",
       "      <td>0.00635</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00456</td>\n",
       "      <td>0.00455</td>\n",
       "      <td>0.00442</td>\n",
       "      <td>0.00440</td>\n",
       "      <td>0.00436</td>\n",
       "      <td>0.00394</td>\n",
       "      <td>0.00316</td>\n",
       "      <td>0.00261</td>\n",
       "      <td>0.00228</td>\n",
       "      <td>0.00218</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1 rows × 23 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      BND     CSJ     TIP     IEF     LQD     XLU     TLT     DIA     XLE  \\\n",
       "0 0.36356 0.27426 0.11938 0.08572 0.04817 0.02016 0.01346 0.00848 0.00792   \n",
       "\n",
       "      XLB  ...     EWJ     XLK     VPL     FXI     EEM     EWG     EFA  \\\n",
       "0 0.00635  ... 0.00456 0.00455 0.00442 0.00440 0.00436 0.00394 0.00316   \n",
       "\n",
       "      EWU     EPP     EWQ  \n",
       "0 0.00261 0.00228 0.00218  \n",
       "\n",
       "[1 rows x 23 columns]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hrp_weights"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(15, 5))\n",
    "plt.bar(hrp_weights.columns, hrp_weights.values[0])\n",
    "plt.xlabel('Tickers', fontsize=12)\n",
    "plt.ylabel('Weights', fontsize=12)\n",
    "plt.title('HRP Portfolio Weights', fontsize=12)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (b) Compute the CLA allocations"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will calculate the minimum variance (min_volatility) solution using CLA."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "cla = CLA()\n",
    "cla.allocate(asset_prices=stock_prices, resample_by='W', solution='min_volatility')\n",
    "cla_weights = cla.weights.sort_values(by=0, ascending=False, axis=1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CSJ</th>\n",
       "      <th>EWQ</th>\n",
       "      <th>BND</th>\n",
       "      <th>EEM</th>\n",
       "      <th>XLK</th>\n",
       "      <th>TLT</th>\n",
       "      <th>SPY</th>\n",
       "      <th>VPL</th>\n",
       "      <th>VGK</th>\n",
       "      <th>FXI</th>\n",
       "      <th>...</th>\n",
       "      <th>EWG</th>\n",
       "      <th>XLF</th>\n",
       "      <th>XLE</th>\n",
       "      <th>XLB</th>\n",
       "      <th>EWU</th>\n",
       "      <th>IEF</th>\n",
       "      <th>EFA</th>\n",
       "      <th>EWJ</th>\n",
       "      <th>TIP</th>\n",
       "      <th>DIA</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.72049</td>\n",
       "      <td>0.15989</td>\n",
       "      <td>0.11962</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.00000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1 rows × 23 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      CSJ     EWQ     BND     EEM     XLK     TLT     SPY     VPL     VGK  \\\n",
       "0 0.72049 0.15989 0.11962 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000   \n",
       "\n",
       "      FXI  ...     EWG     XLF     XLE     XLB     EWU     IEF     EFA  \\\n",
       "0 0.00000  ... 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000   \n",
       "\n",
       "      EWJ     TIP     DIA  \n",
       "0 0.00000 0.00000 0.00000  \n",
       "\n",
       "[1 rows x 23 columns]"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cla_weights"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(15, 5))\n",
    "plt.bar(cla_weights.columns, cla_weights.values[0])\n",
    "plt.xlabel('Tickers', fontsize=12)\n",
    "plt.ylabel('Weights', fontsize=12)\n",
    "plt.title('CLA Portfolio Weights (Minimum Variance Solution)', fontsize=12)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Compute the IVP allocations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "mvo = MeanVarianceOptimisation()\n",
    "mvo.allocate(asset_prices=stock_prices, solution='inverse_variance', resample_by='W')\n",
    "ivp_weights = mvo.weights.sort_values(by=0, ascending=False, axis=1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CSJ</th>\n",
       "      <th>BND</th>\n",
       "      <th>TIP</th>\n",
       "      <th>IEF</th>\n",
       "      <th>LQD</th>\n",
       "      <th>TLT</th>\n",
       "      <th>XLU</th>\n",
       "      <th>DIA</th>\n",
       "      <th>SPY</th>\n",
       "      <th>EWJ</th>\n",
       "      <th>...</th>\n",
       "      <th>EWU</th>\n",
       "      <th>VGK</th>\n",
       "      <th>XLB</th>\n",
       "      <th>EPP</th>\n",
       "      <th>EWQ</th>\n",
       "      <th>XLE</th>\n",
       "      <th>EWG</th>\n",
       "      <th>EEM</th>\n",
       "      <th>FXI</th>\n",
       "      <th>XLF</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.26693</td>\n",
       "      <td>0.21401</td>\n",
       "      <td>0.11619</td>\n",
       "      <td>0.11174</td>\n",
       "      <td>0.08931</td>\n",
       "      <td>0.02496</td>\n",
       "      <td>0.01838</td>\n",
       "      <td>0.01655</td>\n",
       "      <td>0.01428</td>\n",
       "      <td>0.01420</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00947</td>\n",
       "      <td>0.00885</td>\n",
       "      <td>0.00875</td>\n",
       "      <td>0.00828</td>\n",
       "      <td>0.00751</td>\n",
       "      <td>0.00722</td>\n",
       "      <td>0.00698</td>\n",
       "      <td>0.00694</td>\n",
       "      <td>0.00607</td>\n",
       "      <td>0.00485</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1 rows × 23 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      CSJ     BND     TIP     IEF     LQD     TLT     XLU     DIA     SPY  \\\n",
       "0 0.26693 0.21401 0.11619 0.11174 0.08931 0.02496 0.01838 0.01655 0.01428   \n",
       "\n",
       "      EWJ  ...     EWU     VGK     XLB     EPP     EWQ     XLE     EWG  \\\n",
       "0 0.01420  ... 0.00947 0.00885 0.00875 0.00828 0.00751 0.00722 0.00698   \n",
       "\n",
       "      EEM     FXI     XLF  \n",
       "0 0.00694 0.00607 0.00485  \n",
       "\n",
       "[1 rows x 23 columns]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ivp_weights"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(15, 5))\n",
    "plt.bar(ivp_weights.columns, ivp_weights.values[0])\n",
    "plt.xlabel('Tickers', fontsize=12)\n",
    "plt.ylabel('Weights', fontsize=12)\n",
    "plt.title('Inverse Variance Portfolio Weights', fontsize=12)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We observe a clear difference in the allocation strategies of the 3 algorithms:\n",
    "\n",
    "* CLA concentrates literally 99% of the holdings on the top-3 investments and assigns zero weight to all other assets. The reason behind CLA's extreme concentration is its goal of minimising the variance of the portfolio. This makes it very conservative in allocating weights and it places emphasis on only a few of the assets.\n",
    "\n",
    "* Inverse variance (IVP) has assigned non-zero weights to all the assets and except the top 5 holdings, its weight allocations are distributed almost uniformly.\n",
    "\n",
    "* HRP, on the other hand, tries to find a middle ground between CLA and IVP allocations. It places more emphasis on the top 5 holdings/assets just like IVP but assigns lesser values to the rest of the weights but not a uniform allocation.\n",
    "\n",
    "* Another important fact is that both the CLA and HRP weights have very little difference in their standard deviations, $\\sigma^{2}_{HRP} = 0.12$ and $\\sigma^{2}_{CLA} = 0.15$. However, CLA has discarded half of the investment universe in favor of a minor risk reduction while HRP did not. Since, CLA has placed its emphasis on only a few of the assets, it is prone to much more negative impact by random shocks than HRP - something which we will see in the next set of questions."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Question-16.3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (a) Perform a spectral decomposition: VW=W$\\wedge$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In the spectral decomposition above, **W refers to the eigenvectors matrix** while **$\\wedge$ denotes the eigenvalues matrix - a diagonal matrix with eigenvalues along the diagonal**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "N = stock_prices_downsampled.shape[1]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "eigenvalues, eigenvectors = np.linalg.eig(V)\n",
    "eigenvalues_matrix = np.identity(n=N) * eigenvalues\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (b) Form an array $\\epsilon$ by drawing N random numbers from U[0, 1] distribution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.37454012, 0.95071431, 0.73199394, 0.59865848, 0.15601864,\n",
       "       0.15599452, 0.05808361, 0.86617615, 0.60111501, 0.70807258,\n",
       "       0.02058449, 0.96990985, 0.83244264, 0.21233911, 0.18182497,\n",
       "       0.18340451, 0.30424224, 0.52475643, 0.43194502, 0.29122914,\n",
       "       0.61185289, 0.13949386, 0.29214465])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "epsilon = np.random.uniform(low=0, high=1, size=N)\n",
    "epsilon\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (c) Form an NxN matrix $\\wedge^{'}$, where $\\wedge^{'}_{n,n}=N\\epsilon_{n}\\wedge_{n,n}(\\sum\\epsilon_{n})^{-1}, n=1....N$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "eigenvalues_matrix_modified = (N * epsilon * eigenvalues_matrix) / np.sum(epsilon)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (d) Compute $V^{'}=W\\wedge^{'}W^{-1}$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "V_modified = eigenvectors @ eigenvalues_matrix_modified @ np.linalg.inv(eigenvectors)\n",
    "V_modified = pd.DataFrame(V_modified)\n",
    "V_modified.columns = V.columns\n",
    "V_modified.index = V.index\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x720 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "g = sns.clustermap(V)\n",
    "g.fig.suptitle('Original Covariance Matrix of Asset Returns', fontsize = 20)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl4AAAKUCAYAAADVUjZUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xm8JFV5+P/PM3c2kIgsGgSJg4ALGEFRVIIRNIomKupXIpL4lYhOTNRoFg0mfmE0ouMSjQaXXBVHjQoGNY6K+lOQJAoIiKMsghlhlEETkB1kYO6d5/fHOddpevoufadu3aU/79erX91VderUqaWrnz7nVFVkJpIkSZp5i2a7AJIkSYPCwEuSJKklBl6SJEktMfCSJElqiYGXJElSSwy8JEmSWmLgtcBExIqIyIhYM8PLyYg4dyaXMR9FxBF126ya7bJoYhGxISI2zHY5OkXE0yPivIi4pR5H/z7bZZLUrIEIvOoJrPM1GhE3RcS5EXF8RMRsl3FQRMTDI+KfI+KyiLg1Iu6JiJ9HxFci4oSIWDbbZVR/6vdo7Lv10gnSndyRbs12LrOVPxhtiogVwBeBfYDTgDcBp/eZxzfqdrk2IoYaL2SDImJNLeuKPuc7IrY9p2+u55HPR8TvNlS+BXeMaW5YPNsFaNmb6vsSYD/gecCTgccCr5qtQg2KiDgJOJkS8J8PfBy4A/hN4AjgI8CfUfbHfHUh8Ajgl7NdkFkwAryMEjTcS0QsAl5a08yV885TZ7sAXX4PWA78dWZ+ut+ZI+IhlHVK4EHAM4EvN1rCueWnwJr6eUfgEMo5/bkR8cLM/LfZKpg0kblyAmxFZq7qHI6I3wH+E/jziPjHzLxmVgo2ACLi7yiB77XAMZn53R5pngX8ddtla1Jm/gq4crbLMUu+TPnROzAzL++adhTwW8AXKD+Osy4zfzLbZeiyZ33/+TTnfzkQwGrgRGAlCzvw2tDjnH4i8DbgHYCBl+amzFzwL8o/wBxn2uV1+gvGmX4UcBalBuNu4CfAO4H79Uj7KOAzwIaa9gbgEuCfgCVdaYeAVwDfAW4F7gLWU2p99u9ItydwUk33P8A9lBPzp4EDepRhRV2fNT2m7Qi8AVgH3EmpbTofeNE4674U+H91ne8GrgHeAiyryzh3itt/RS33PcAjJ0m7rMe4P6QEyGPb6dK6Hss60iwHbgGuBxaPk/cHa7mf1THuucC/Aj+u2+RO4HvAXwCLeuSxpubxEODVwA9rmc6t04+o01d1zXcI8F7gB8BNwCbgv4F/BHbpsZzjaz7HA0cC5wK3A7cBXwEeMc467gj8LXBxTX8H8CPgfcBvbs/xMME+O7eW9Q/q+z/1SPP5uoz/0+v4pI/jHFhV8+j1Or57PwCH1m12Ux23oqbZQPnxHst3F7Z+dw/pWuYi4Ft1/hf3sW2mcuyOlbXX64gpLmcx8Iu6nB3q/h8B9hon/UOAYco55666bS4FPgTs1nUO+AvKeexm4Fd1G30R+L0e+T6c8h25tu7D/6378GFd6cZb3w1TWNex7bXN+Qe4f0deu4+znf4cuIDyXfoV8H1Ki8eijnRTOcaO7xzusaxtytiR7xHAccB3Kd+7DXX6ijp9Tf18OuW3Z1Pdp8/qsZy+9pGv2X8NVI3XJDZ3j4iIkylflJso/xyvpwRXfwP8fkQ8MTNvq2kfRfkSJbCWEqTcl9Kk+efAG8eWERFLa35Po5ygPk05Cayg1AZ8m/KjDPC7lH+v3wI+R/mS7g+8AHhORPxOZv5gspWLiPsB5wCPpnxBT6P8mBwFfLrWUryxI30AnwWOpgRep1K+4C8Ffnuy5XX5E0rz7umZedlECTPz7q5yv5XyQ/VLyna6g9KE8lbgqIh4embek5mbIuIMyr/8ZwJf6spnGfBCyg/B1zomrQa2UPbddcDOwFMoQdLjgBePU9T3Ak+i/KCfBYxOtF6U2ojnAf8BfJOy7Q8B/gp4ZkQ8PjNv7zHfsyj74KuUH8UDgN8HHhcRB2Tmr5s0I2IXynFyEHAVZR/fA+xL2Qefr+vf9/EwRVdRgow/joi/HduXEbEH8GzgU5TAoJd+jvNzgfsBr6EEsp0d0Nd15ftEyvHz7bqOu1O2yTYy8+aIeFFdhzMi4tEd++Rkyo/lmsz85MSboZjqsUv5kXxTzf/JlCb4DTWbDUzNc4A9gA9n5l21X9I/U76v/9BVrgcCF1HOT2dRtvdySt+yF1O+6zfW5GuAFwGXAZ+gBGl7AocDz6Acy2P5PoNyjC2hfP/WU5o8nw/8QUQcmZmX1ORvovzpOYjyXbqljh97b8K9zukRMVauoyjH6qcpAc2RlG31eLZ+389l6sfYdPw15fz/Jcoxv3PX9AdTui1cDXwS2JVy/vpiRPxeZn6rI+0apriPNEfMduTXxotxarwoJ/tRyj/cB3ZNO7LOdx5dtVts/afzno5x/1jHHd1jObtw739Tb2VrgLasK+0y4P4dww8AfqNHngdRTuRf7Rq/gt41Cmvq+Nd3jV9OCUS2AAd3jD+upj8fWN4xfldKINZPjdfZNf3L+txvT6zz/QzYo2P8YsoJK4G/65H+zB55HVOn/WPX+H17pF1E+fFL4PHjbMfrgH16zHsEvWu8HgwM9Uh/Qk3/t+McYyPAU7umvW2cffnpOv6DdNXWATsBO0/3eJhkP51b89oP+OP6+UUd00+s436H0o+p1/HZyHHeYz8k8KfjpNlAjxoW4PV1vs/U4SMp54krgB1n4tit01bRRy1X17xfq/M+sQ7vSjmvbehxLLy6pn1Nj3zuA+xQP+9cj4OLxzl2O2vGdqHUtvySbWsoH1n34SXjfJdW9LmuY/t2m/MP5Q9uApf2mDa2ff+5c30orQ8fpev8PYVj7HimX+N1J/DoHvOMLTOBk7umHVXHn9Uxbsr7yNfcec16AVpZya0H8qr6OgU4g/LPdwvw6h7zfKHOc+A4eX4fuL5jeCzwevokZRmi/Kv7FbDndq7XWso/tiUd47Y5WQC7UX7ALxonn4PqPO/oGPeNOu7IHunHTjjnTrGcV9T0z+hz/T5c51vZY9pDKT+GV3eNv4ryg7Nr1/gv17weNcVlP6amP6lr/BrG+dGq048YO9amuJyg1AKdM842/tce8+xDV4BJCVxGKc1z95lkmX0fD5Pkdy5bA6/llBriczrWbz1wRR3uGXg1cZyPsx++P0G+G+gdeAWlhjEpNVY/r9/X357hY3cV0wi8KEH9KHBl1/gza37P7Br/6vHK1pXuvjXdd4CYJO1ratpXjjP9PXX6AR3jxr5LK/pc37F9u4Gt5/R3UGpws36fDuuaZxGlFu8X9OiKQKnd2gJ8to9j7HimH3i9Z5x5xpa5gd6B1E+BX05nH/maO69Ba2o8uWs4gRMy82M90j6RUlV9TEQc02P6UuD+EbFbZt5ICeReA/x7RJxJqd79Tm7bgffhlH8p383MKXWijYg/oPQHeyylqaR7v+1OOaGM53GUgG+8+0stqe+P6Bj3GMqJ6Ns90p87aaGb8Zj6fk73hMz8cURsBPaJiJ0zc6wJ6+OUwPpY4AMAEfGblH+L38/MH3bmExG7Aa+jNN89hPKPv9Ne45Ttwn5WpDZz/Gkt1wGUY6Dzdi7jLefiHuOure+7dIx7XM3vPzPzzkmKM53jYUqyNPn+K/CqiNiPEhTsS2lSnVADx3kvfe0nKFXjEfF/KU1Kb62j/zQzL+0jm+kcu9P1Msq+X9M1fg2lT93LKYHkmLWU9Xp/RBwFfJ3yw31F1l/zWs7bIuJLlGbidRHxOeC/KOeuX3Ut64n1/aBxjqmH1vdHUP6INeHBbHtOvxl4SmZ2Nwc+lFIL+N/AG8e5g9BdTOOYn6bJjst1mdmr+8K1bN3W/e4jzREDFXhlZgBExH0oB+9HgQ9FxE8zs/sEuRtl+3R/sbvtBNyYmRdGxJOAv6f0S3lxXdZVwJsy8zM1/f3q+3VTKXNEvIbSOf9mSi3Uzyj/vpOtfSQmu/fVbvX9cfU10bqM2Rm4KTO36ftG6fzcj19QTmjjBRfjGev3MN6P7S8oV8rdj619hz5B6dPyEmrgBfwRZV9+vHPm2s/pIkoN0oV13psotUFj/TvG27b9boMzKH28rqZ0ev0fSs0cwGsnWM42fV4yc6T+cHTep6mf42o6x0M/PkypVTmBsm3vpmzbcTV0nPfS734CIDNviIj/pATKN1L62fRjOsdu3+q9ul5K+ZPUXcavUdb/2RGxR2b+D0Bm/jQiDqXUvjyD0gcL4NqIeFdmvq8jjxdSLtY4jq2349lU/1z+TWb+bx03dky9fJIiT/eY6uU/MvMIgIjYlRJkngp8KSIeN7a+XeXbn4nP6U2WbyKTHZfj9XUbYdv7b051H2mOGKjAa0ytEfhmRDyb0rH44xHxsK5/CLdS+kbs2ke+5wPPqh25D6Gc1F5N6ax8Q2Z+k61fqEmDkIhYTDk5/g/wmMz8Rdf0J/aar4exE/t7MnPSmoeOeXaNiCU9gq89ppjHmG9TOqw/lRLsTtVYufeg9Cvr9sCudGTmxog4B/i9iHh4Zl5JCcI2U/pAdXoZJTB4U257WfoTKYHXeHKCafcSEY+lBF3fpDT7jHRMW0TpU7S9pnxcMb3jYcoy89KIuIASeO0MfK7WCvfU4HHeszjTmSkijqUEXb+k1LS9j8mDik59H7vT9Cy23oZi4zg1OVCCs7HaOzLzR8AL67Y/iNIE/GrgvRFxZ2Z+tKa7i9qcFxF7U/rFHk/py7eCcoFJ53oc1F2r3IbMvAn4cL1w6VTKn67ndyQZK98XMvP53fNP05b6vs3vaP1TN5FpHZc9M5r6PtIcMRB3rh9PPUF8mHLlzV92Tb4A2CUiDpxGvndn5nmZeRLlMl8oV6ZBucfTLcCjImLPnhlstTvlH/F5PX6MdmJrc8ZkLqScJPr5Al5COT4O7zHtiD7yAfgYJfD5PxFxwEQJ4953rv/+eMurzVgPAq7JzO5/h2vq+0si4mDKlahfzcwbutLtV98/16MoT56onH0aW87azqCrOpRy+f/2GtvHv1trdKeSdiZPyB+mXNq/tH6eyHSO87FmmMbvzl6PrWHK7WAeTbnK8WU1GJuq6R67/RoLBr9M+VPT/VpTp58QPaKyzBzJzO9l5tspV8ZBqWHcRmZem5mfojTbrwcOr031UM6X0N8xNRP78EOUWwQ9r96ncczYefcJtdm/ifLdXN/37jFtVm4CPck+0hwx0IFX9RZKU8jf1Mvxx7ynvn+4V4AUEfeJiCd0DB8WEb1+QH+zvv8KoLbbf4DyY/uhrkCDiFgaEfevg9fX+Q6pP0BjaZZQLsHefSormJnXUy7lf2xE/L/o8SiRiNg3IvbpGDXW7+2UiFjekW5XypVDU5aZGyj/yJYCX6k1QNuol6N39kUZuwP6Gzu2yVjzyrsox2+vGrTPU27P8ceUf36wbf8X2Hqp/hFd5Xg0pVN1U8ZbzgOA9zexgBpUnk6pSXlXrUnrXNZOEbFzTTud46Ffp1Nq+Y5m8j6B0znOb6bUGvzWdpRxG7XG5HRKk9NLMnMjpQnnRuBfImLfKWY13WO3n7LuTalVv5lyU+KX9Xj9CaXG+SGUWi0i4pCxY6HLvc5VEXH/iOh165j7ULbPCFtvzfExSmBzcm3G7C7roog4omv0WC1oY/uwnl/HmhJP6Rg/Qrma8YHA+3qdqyPigV1/DCc7xi6m/IE5LiJ27MhnV0pn/xnX5z7SHDGQTY2dMvO6iPgQpVnp9dQf3Mw8O7beBfm/I+Isyr25dqJ06nwy5YT2jJrV64GnRMR/1XR3AAdS7ttzM+Uf9Jg3Ue4Z82zgxxHxZcrNLvcGnk7p7L0mM7dExPsol+NfGhFfpAQvR1I6in6rfp6KV1H6N7wZeHFEfJtyT6c9Kf2vHkf5x3tNTf8ZSt+B5wCX1WUvofRfu4jSYXrKMvOttVnjZOCiiDiPcuIae2TQ79byXdwxz3kR8Q7Ktr2s9lm4k7JNH0nZ/u/ssay7IuLfKE1df045wX+lR7E+QdnW/xQRR1I63u5Pab75fF3/JlxE6bz8/Lre36as8zMpV2FO907l3V5F2S6vAI6IiK9TTrr7UP4BP4etQVC/x0NfarP9lB7wPJ3jPDPviIjvAk+KiE9RboA7SqlV3J6mrndQugm8OzO/Wpd1XUQcT7kNxBkRcViW+29NtE7TOnb7dAKlNuZfM3PTBOk+Qqm5XknpP/di4E/rPv8J5fy0L+V8dDelrx2UZuvvR8SllBsFX0u5iu5ZlCbU92W9z1lm3hgRL6BcDX5BRJzN1ptT703pU7sb5arXMWdTvn8fjtIp/Hbglsw8ddpbpPg85cKIJ0fEUZn59Tr+HyjNqq+g9Hs7h9In8gGU78LvUProXlHXacJjLDN/Uce/mNKx/St1+/w+pZb00du5HlMx5X2kOaTfyyDn4wt638erY/pvsvWu5d139z6cciPRn1N+xG6gfKnfDTy2I93TKf/6rqD0J7iT8qP6PuDBPZa5mPLjdyEl+LiT8sM/DOzXle6var53UfrBfJIS/K2h63JsJr5z/dK6zPNqGe+mdGI+m9LBe7ce6U+idAgfuyfQKfR55/quPB9B+ed5GaVW6h5KR+OvUn5Iet25/ljKD9XtlNsKXE45QS6fYDmHj+134J8nSHcA5Sqv69l61/qXjbcde23zrulH0ON2EpQA4gN1G26i/OC9lXL3+A103daAaVyqXsffp26bH1JqLm6vx84/AQ/YnuNhgm14bi3PflNIO959vPo6zus8+1GCoRspNQ+/3l7j7Yeu+e+13SmBR1IC5SU90r+7Tn9vH8f7lI9d+ridBKXG7GdM4RYp9Ri7hfJdewDlT98H2foUhbGnZnyMjidLUJp/T6JcmXldPT5+Uff3i+hx+wLK9+ZUyrlsE+U7fmXdl8/tkf6vKE9WuLuuy4YprPvYvh33/NO5L7vGByVQOruu+z113b4N/B2w91SPsTp9GSWA3ljzWk/58764Vxkn28dMfguLc+n4LZvOPvI1+6+oO0+SJEkzzD5ekiRJLTHwkiRJaomBlyRJUksMvCRJklpi4CVJktQSAy9JkqSWGHhJkiS1xMBLkiSpJQZekiRJLTHwkiRJaomBlyRJUksMvCRJklpi4CVJktQSAy9JkqSWGHhJkiS1xMBLkiSpJQZekiRJLTHwkiRJaomBlyRJUksMvCRJklpi4CVJktQSAy9JkqSWGHhJkiS1xMBLkiSpJQZekiRJLTHwkiRJaomBlyRJUksMvCRJklpi4CVJktQSAy9JkqSWGHhJkiS1xMBLkiSpJQZekiRJLTHwkiRJaomBlyRJUksMvCRJklpi4CVJktQSAy9JkqSWGHhJkiS1xMBLkiSpJQZekiRJLTHwkiRJaomBlyRJUksMvCRJklpi4CVJktQSAy9JkqSWGHhJkiS1xMBLkiSpJQZekiRJLTHwkiRJaomBlyRJUksMvCRJklpi4CVJktQSAy9JkqSWGHhJkiS1ZHE/iTf/8uqciUIs2f0hMRP5SpIkzSV9BV6Mbp6hYkiSJC18fQVeOToyU+WQJEla8Pqr8dp89wwVQ5IkaeHrq3N9jtwzI6/JRMQzIuKqiFgfESf2mL4sIs6o078bESs6pr2hjr8qIo6q4/aOiG9FxBURcXlEvKZHnn8dERkRu/ezjSRJksYz52u8ImIIeD/wNGAjcFFErM3MKzqSnQDcnJn7RcSxwNuBF0bEAcCxwIHAnsA3I+KhwAjw15l5SUT8BvC9iPjGWJ4RsTfwdOBnLa2mJEkaAP0FXlOonZoBhwLrM/NqgIg4HTga6Ay8jgZW1c9nAqdGRNTxp2fm3cA1EbEeODQzzwd+AZCZt0fEj4C9OvJ8D/B64IszuWKDpNZULp/tcmjB2JSZq2e7EJLUr/4614/MTI1XRKwEVnaMGs7M4fp5L+Dajmkbgcd3ZfHrNJk5EhG3ArvV8Rd0zbtX17JXAI8GvluHjwauy8wflNhNDVmematmuxBaGCJi1WyXQZKmY040NdYga3jShA2LiJ2AzwGvzczbImJH4O8ozYySJEmNmg9NjdcBe3cMP6iO65VmY0QsBnYGbpxo3ohYQgm6PpWZn6/T9wX2AcZqux4EXBIRh2bm/zS5UpIkafD019Q4O7eTuAjYPyL2oQRNxwLHdaVZC7wEOB94AXBOZmZErAU+HRHvpnSu3x+4sPb/+ijwo8x891gmmXkp8ICx4YjYADw2M385UysnSZIGR59Nje3XeNU+W68Cvg4MAadl5uUR8Wbg4sxcSwmiPlk7z99ECc6o6T5L6TQ/ArwyM0cj4nDgxcClEbGuLurvMvOsdtdOkiQNkvnQ1EgNiM7qGndSx+dNwDHjzHsKcErXuG8Dk/acz8wV0yiuJElST3O+xkuSJGmhMPCSJElqiYGXJElSS/oMvDbPUDEkSZIWvj471xt4SZIkTZdNjZIkSS3p8waq1nhJkiRNV381XvcYeEmSJE3Xor5Sbx6ZmdckIuIZEXFVRKyPiBN7TF8WEWfU6d+NiBUd095Qx18VEUd1jD8tIq6PiMu68jo4Ii6IiHURcXFEHNrXNpIkSRrHnG9qjIgh4P3A04CNwEURsTYzr+hIdgJwc2buFxHHAm8HXhgRB1AeH3Qg5VmN34yIh2bmKLAGOBX4RNci3wG8KTO/GhG/X4ePmLEVlCRJA6PPzvWT107NgEOB9Zl5NUBEnA4cTXn+4pijgVX185nAqfVB2EcDp2fm3cA19VmOhwLnZ+Z/dtaMdUjgvvXzzsDPG10bSZI0sObEfbwiYiWwsmPUcGYO1897Add2TNsIPL4ri1+nqQ/VvhXYrY6/oGvevSYpzmuBr0fEuyhNsYf1sSqSJEnj6q+p8Z6ZqfGqQdbwpAnb8WfAX2bm5yLiD4GPAr83y2WSJEkLwHxoarwO2Ltj+EF1XK80GyNiMaWJ8MYpztvtJcBr6ud/Az4yvWJLkiTdW19XNeY9IzPymsRFwP4RsU9ELKV0ll/blWYtJWACeAFwTmZmHX9svepxH2B/4MJJlvdz4Mn181OA/57SxpEkSZpEn1c1js5UOcZfZumz9Srg68AQcFpmXh4RbwYuzsy1lObAT9bO8zdRgjNqus9SOuKPAK+sVzQSEZ+hXK24e0RsBE7OzI8CLwfeW2vONnHvvmeSJEnT1uezGrfMUDEmlplnAWd1jTup4/Mm4Jhx5j0FOKXH+BeNk/7bwCHbU15JkqRe+uxcPzuBlyRJ0kJg4CVJktSSvgKvLQZekiRJ09ZnjddMFUOSJGnh67PGa6aKIUmStPD1F3htjpkqhyRJ0oLXV+A1eo+BlyRJ0nT1F3ht7utG95IkSerQVyQ1unnRjLwmExHPiIirImJ9RJzYY/qyiDijTv9uRKzomPaGOv6qiDiqY/xpEXF9RFzWldc7I+LKiPhhRHwhIu7XzzaSJEkaT3+B18iiGXlNJCKGgPcDzwQOAF4UEQd0JTsBuDkz9wPeA7y9znsA5fFBBwLPAD5Q8wNYU8d1+wbwyMx8FPBj4A39bCNJkqTx9BV4jYwsmpHXJA4F1mfm1Zl5D3A6cHRXmqOBj9fPZwJPjYio40/PzLsz8xpgfc2PzPxPynMd7yUz/7/MHHty9wXAg/rZRpIkSeOZE328ImIl934Y9XBmDtfPewHXdkzbCDy+K4tfp6kP1b4V2K2Ov6Br3r36KNpLgTP6SC9JkjSuvgKvkdGZCbxqkDU8acIWRcTfAyPAp2a7LJIkaWGYE4HXJK4D9u4YflAd1yvNxohYDOwM3DjFebcREccDzwKempk57ZJLkiR16Cvw2jw6NHmi5l0E7B8R+1CCpmOB47rSrAVeApwPvAA4JzMzItYCn46IdwN7AvsDF060sIh4BvB64MmZ+atG10SSJA20/mq8trRf41X7bL0K+DowBJyWmZdHxJuBizNzLfBR4JMRsZ7SYf7YOu/lEfFZ4ApKs+ErM3MUICI+AxwB7B4RG4GTM/OjwKnAMuAbpX8+F2TmK9pbY0mStFD1V+OVs3Pn+sw8Czira9xJHZ83AceMM+8pwCk9xr9onPT7bVdhJUmSxtFf4NXf3SckzSH15sPLZ7scDVkREatmuxAN2pSZq2e7EJJmXp+Bl89qlOax5Zm5arYLoW0tsCBS0gT6C7zCGi9JkqTp6jPwssZLkiRpuvoMvGaqGJIkSQufNV6SJEktscZLkiSpJQZekiRJLenrMsXNM/SaTEQ8IyKuioj19V5E3dOXRcQZdfp3I2JFx7Q31PFXRcRRk+UZxSkR8eOI+FFE/MXUt5AkSdL4+ntk0CzUeEXEEPB+4GnARuCiiFibmVd0JDsBuDkz94uIY4G3Ay+MiAMojw86kPKsxm9GxEPrPOPleTzlwdoPz8wtEfGAmV9LSZI0COZDU+OhwPrMvBogIk4HjqY8f3HM0cCq+vlM4NQoD1o8Gjg9M+8GrqnPcjy0phsvzz8DjsvMLQCZef0MrpskSRogfTY15oy8ImJlRFzc8VrZsdi9gGs7hjfWcfRKk5kjwK3AbhPMO1Ge+1Jqyy6OiK9GxP79bCNJkqTx9PnIoJmRmcPA8Axl369llOemPTYing+cBjxplsskSZIWgD6bGnOmyjGR6yh9rsY8qI7rlWZjRCwGdgZunGTe8cZvBD5fP38B+Nh2ll+SJAmYI02Nk7gI2D8i9omIpZTO8mu70qwFXlI/vwA4JzOzjj+2XvW4D7A/cOEkef47cGT9/GTgx/1sI0mSpPH02dTYfo1XZo5ExKuArwNDwGmZeXlEvBm4ODPXAh8FPlk7z99ECaSo6T5L6TQ/ArwyM0cBeuVZF7ka+FRE/CVwB/CyttZVkiQtbHM+8ALIzLOAs7rGndTxeRNwzDjzngKcMpU86/hbgD/YziJLC1q9993y2S7HArIiIlbNdiEWkE2ZuXq2CyH10mfgtWWmyiFpflmematmuxBSLwaxmsvmRY2XJEnSQtBf4JXWeEmSJE1Xf48MsqlRkiRp2uzjJUmS1BKbGiVJklpijZckSVJL+uvjZY2XJEnStPXZ1Dg6U+WYUEQ8A3gv5S7zH+m+MV5ELAM+ARxCeUbjCzNzQ532BuAEYBT4i8z+YbGuAAAgAElEQVT8+kR51kcLnQ7sBnwPeHFm3jPT6yhJbVvAN8JdyDek9eaw89ycr/GKiCHg/cDTKA+wvigi1mbmFR3JTgBuzsz9IuJY4O3ACyPiAMrjgw4E9gS+GREPrfOMl+fbgfdk5ukR8aGa9wdnfk0lqXXeCHeeWcAB5cDo7yHZOTojr0kcCqzPzKtrzdPpwNFdaY4GPl4/nwk8NSKijj89M+/OzGuA9TW/nnnWeZ5S86Dm+dx+tpEkSdJ4+qzxmpmmxohYCazsGDWcmcP1817AtR3TNgKP78ri12nqQ7VvpTQV7gVc0DXvXvVzrzx3A27JzJEe6SVJkrbLnOjjVYOs4UkTSpIkzWNzosZrEtcBe3cMP6iO65VmY0QsBnamdLKfaN5e428E7hcRi2utV69lSZIG3CxemDBbFw7Yqb8h/dV4bZmVwOsiYP96teF1lM7yx3WlWQu8BDgfeAFwTmZmRKwFPh0R76Z0rt8fuBCIXnnWeb5V8zi95vnFmV7BuarhE0tTJwu//JLmgoG6MMFO/c2Z8zVetc/Wq4CvU279cFpmXh4RbwYuzsy1wEeBT0bEeuAmSiBFTfdZ4ApgBHhlZlmJXnnWRf4tcHpEvAX4fs17UM25E4tffknSfNZf4LVlZPJEMyAzzwLO6hp3UsfnTcAx48x7CnDKVPKs46+mXPUoSZLUqPnQ1ChJkrQgzPmmRkmSpIWir8BrdIvPapQkSZquPvt4WeMlSZI0XfbxkiRJakmfTY0GXpIkSdPVV+B1z90bY6YKIknzxSzetbxps3UX9KZ5Y2XNG30FXpIkYA7eXHiQLZDgUQNi0WwXQJIkaVAYeEmSJLXEwEuSJKkl9vGSJGkeavkij7YuxFjwF0oYeEmSND8tuIs8BuFCCZsaJUmSWmKNl6R5axbvpzVb979a8M0wnfrYv1PZHwO17TR3GXipFQ3+QDb1g+dJeGFYcE0tExmEZpguje3fAdx2mqMMvNSWOfUD6UlYbWvoz0cTfzz806FZMcXvwFSP8Xl7HBt4SVI75sSfD/90aBZZg4mBl6RZtp01QdOtAZq3/5YlzW8GXpJmW+s1QfP537IWnu3487E9Tc/++ZglBl6SNM9YS7jg+OdjgBh4SdL84w+1evIWHHOfgZckDTivNltQ7MA+xxl4ad7xsnyNp+F/+zA4+9gfa6klBl6aj7wsX+Np9NhwH0tqmoGXBp5XFEmS2mLgJdlRWZLUEgMvqUFeUSRJmoiBl9QsOylLksYVmTnbZZAkSRoIi2a7AJIkSYPCpsYB9IYVxzVWzXnlltubyorrRm5rLC+AXYZ2bCyvUbY0lleTtcz/cf3ljeUFsMdOuzSW1y2b7mwsr0URjeUFMBTN/ecczeaOjWWLlzSW19JFzZ7e79ky0lhei2OosbyWDjW7ng9avntjef18042N5bU5RxvLaxHNfp/uu+Q+jeXV5PcJ4EfXX9jsyjbAGi9JkqSWGHhJkiS1xMBLkiSpJQZekiRJLTHwkiRJaolXNUqSpIETEbsBZ9fBPYBR4IY6/NDM3LEj7UnA8+vgbwOX1s8fzsz397NcAy9JkjRwMvNG4GD49ZNC7sjMd9XhO7rSvhl4c0QsBn6ZmQdPd7k2NUqSJLXEGq+W9PHw5BnT1DMEJUmaDyJiJbCyY9RwZg7PVnnAwKtNjT08WZIkTa4GWbMaaHWzqVGSJKklBl6SJEktMfCSJEm6tx0jYmPH66+aytg+XpIkaaB198HOzJ4VU5k5Atxve5ZljZckSVJLDLwkSZJaYuAlSZLUEvt4DaArt9zeWF63bbm7sbwWEY3lBXBPjjSW12huaSyvbCwn2HOnXRvMDe6zeIfG8trhPssayysaPjaalA3u0cUx1FheQ9Hs/+omvwNNano9m7Tj4lm9Z/a4mv4+LV+0pLG85upx1qS5e8RKkiQtMAZekiRJLTHwkiRJaomBlyRJUksMvCRJklpi4CVJktQSAy9JkjSQIuKO+r4iIu6KiHUdr/9bp22IiEs7xh+2Pcv0Pl6SJEnwk8w8eJxpR2bmL5tYiDVekiRJLdnuGq+IOBGYm7fnnVtWNJHJ9mzv7qevS5K0kEXESmBlx6jhzBweJ/m+EbGuY/jVmflf9fO3ImIUuDszH789ZWqiqXG5P+iTi4hVDWXl9pYkaQpqkDVeoNXNpkZJkqSFxMBLkiSpJV7VKEmStG0fr9My831NL8TAS5IkDaTM3Km+bwB2GCfNiiaXaVOjJElSSwy8JEmSWmLgJUmS1BL7eA2g60ZuayyvRURjeQ1Fs/8DRnJLc3nRXF5N2nP5bo3mt4VsLK8lMdRYXk0eZ9Ds/hxt8Dhr8jvQ9DZrUpPHWdOGGtxuOw4tayyvxQ1+n5rW5LE2l4+NpljjJUmS1BIDL0mSpJYYeEmSJLXEwEuSJKklBl6SJEktMfCSJElqiYGXJEkaSBGxR0ScHhE/iYjvRcRZEfHQiHhfRFwWEZdGxEURsU9NvyEidt+eZXofL0mSNHAiIoAvAB/PzGPruIOAFwJ7Ao/KzC0R8SDgzqaWa+DVnk0RsaqBfFY0kIckSYPuSGBzZn5obERm/iAingr8IrPcHTkzNza5UAOvlmTm6ibymUrwFhEnAst7lGHSeSVJWigiYiWwsmPUcGYO18+PBL7XY7bPAt+OiCcBZwP/mpnfb6pMBl4L03KDLEnSoKtB1vCkCe89z8aIeBjwlPo6OyKOycyzmyiTgZckSRpElwMv6DUhM+8Gvgp8NSL+F3gupfZru3lVoyRJGkTnAMtqcyQAEfGoiHhyROxZhxcBjwJ+2tRCDbwkSdLAycwEngf8Xr2dxOXA2yiB1pci4jLgh8AIcGqdbTFw9/Ys16ZGSZI0kDLz58Af9pj0z90jIuL+QGTm7duzTGu8JEmSJhARzwH+C3jD9uZljZckSdIEMnMtsLaJvKzxkiRJaok1XgNol6EdG8vrnhxpLK+RcpPgxuy0aGljeW1qcD2TbCyvm0Ybe4oFAMsb3GZNHhtLo9lT1WiDx9pIjjaW11DM3f/CTW6zJtdziGgsL4Cli5o71jaNNvcdmMua3AdL5vB3oCkLfw0lSZLmCAMvSZKklhh4SZIktcTAS5IkqSUGXpIkSS0x8JIkSWqJt5OYfzZFxKpJ0qxooRySJM1rEXFHZu7UY/xK4K/q4B3A32TmuXXaucADKc9sXAp8E3hjZt4ylWUaeM0zmbl6sjRTCMwkSVIPEfEs4E+BwzPzlxHxGGBtRDw+M6+ryf4oMy+OiKWUB2t/EXjyVPK3qVGSJGmrvwVel5m/BMjMS4CPAa/sTpiZ9wCvB34rIg6aSubWeC1gEXEisHxsODNXzV5pJElqV20yXNkxajgzhyeZ7UDge13jLgb+pFfizByNiB8ADwd+MFmZDLwWtuUGW5KkQVWDrMkCrSZM+blJNjVKkiRtdQVwSNe4Qyi1XtuIiCHgt4EfTSVzAy9JkqSt3gG8PSJ2A4iIg4HnAf/SnTAillA611+bmT+cSuY2NUqSpEG1Y0Rs7Bh+d2a+OyL2BL4TEYuBPYCDMvOGjnSfioi7gWWU20kcPdUFGnhJkqSBlJk9W/4y80PAh2rg9THgzRHxx1kcsT3LNPCSJEnqITNHgBc3mad9vCRJklpi4CVJktQSmxoH0Chbmssrm8trpMFyAWzKkUbza8po5mwXYVxJc2Vr8tjYzGhjeQFsabBsTRrJ5tYzpn5boSlp8tjY0uB3YEs0XH+wpbnzxlw9zhrX5KE2d0+PjbHGS5IkqSUGXpIkSS0x8JIkSWqJgZckSVJLDLwWpk0RsQpYMcvlkCRJHbyqcQHKzNUANfiSJEld6rMYz66DewCjwNhjgR6amTtGxArKw6+vApYC/wn8eeb0L1k18JIkSQMnM28EDoZfV1TckZnvqsN3dCT9SWYeXB8fdA7wXODz012uTY2SJEmTqI8POg/Yb3vyMfAaABFxos2OkqRBExErI+LijtfK7chrR+CpwKXbUyabGgfD8sxcNduFkCSpTZk5DAxvZzb7RsQ6yn31v5iZX92ezAy8JEmSxveTzDy4qcxsapQkSWqJgZckSVJLbGqUJEkDrbsfdGbuVN83AI9sclnWeEmSJLXEwEuSJKklBl6SJEktsY/XAMrM5vJqLKfmZYOlG21wmzVpqOH/TqPTf/zYNoZiMP7XNfl9IprLalGTmQGjDX6fmvxuNrr9gUWLmt1uUrfBODMOrk31jvUrZrkckiQJa7wWtMxcDb9++KckSZpl1nhJkiS1xMBLkiSpJQZekiRJLTHwkiRJaomBlyRJGkgRMRoR6yLiBxFxSUQcVseviIiMiFd3pD01Io6vn9dExDV1vh9HxCci4kFTWaaBlyRJGlR3ZebBmXkQ8AbgbR3TrgdeExFLx5n3dXW+hwHfB86ZIO2vGXhJkiTBfYGbO4ZvAM4GXjLRTFm8B/gf4JmTLcTAazBs8l5ekqRBExErI+LijtfKriQ71KbGK4GPAP/QNf3twN9ExNAUFncJ8PDJEnkD1QEwdiNVSZIGSWYOA8MTJLkrMw8GiIgnAp+IiEd2zH91RHwXOG4Ki5vS86as8ZIkSQMvM88Hdgfu3zXprcDfMnlg9WjgR5Mtx8BLkiQNvIh4ODAE3Ng5PjOvBK4Anj3OfBERfwE8EPjaZMuxqVGSJA2qHSJiXf0cwEsyczRim8qtUyhXLnZ6Z0T8P2BH4ALgyMy8Z7IFGnhJkqSBlJk9O81n5gags6/XD+hoJczM46e7TJsaJUmSWmLgJUmS1BIDL0mSpJbYx2sA/cf1lzeW15477dpcXst3aywvgJtG72w0v6YMNfh/58LLPtlYXgCfOuikxvK6/8hoY3ktZUtjeTVteTS3nrePNndKvn3RVO73OHXLMxvLq7ktBnctarb+4DuLJ+0bPWVP2rKksbz2i181ltctI5M+1aYvFy9vbj2XNneYzVnWeEmSJLXEwEuSJKklBl6SJEktMfCSJElqiYGXJElSSwy8JEmSWmLgJUmSBk5E7B0R10TErnV4lzq8IiIu65F+TZ2+rr7+YjrL9T5ekiRp4GTmtRHxQWA1sLK+D08y2+sy88ztWa41XpIkaVC9B3hCRLwWOBx410wvcKBqvCLiRGD5bJdjtmTmqtkugyRJbYmIlZTarDHDmfnrWq3M3BwRrwO+Bjy9Dk+U5Tsj4o3184sz89J+yzRQgRew3OBDkqTBUIOsyZoPnwn8Angk8I1J0trUKEmSNB0RcTDwNOAJwF9GxANnepkGXpIkaeBEaVP8IPDazPwZ8E5a6ONl4CVJkgbRy4GfZeZY8+IHgEcADwYeFhEbO17HNLXQQevjJUmStE3/r8wcBR5TB5f0mOXfmliuNV6SJEktMfCSJElqiYGXJElSS+zjNYD22GmXxvK6z+IdGstrC9lYXgDLFy1tLK9ssGyjuaWxvD510EmN5QXwhyffv7G8PvumGxrLa8+RZo+NWxcNNZbXnYt6dQWZniUNrmazWwxuG5rwppJ9ef6jr20sr5+uu19jeQF8LZs7Nq5a0tyxcRU7NpbXr5Y0dw4C2L3Bg+3+o83lNVdZ4yVJktQSAy9JkqSWGHhJkiS1xMBLkiSpJQZekiRJLTHwkiRJaomBlyRJGkgRMRoR6zpeKyLi+RFxdkeaw+u0xRFxfEScuj3L9D5ekiRpUN2VmQd3jdsQES+LiOMoz2f8APCKzByJ2P772Rl4SZIk3durgG8CBwIXZeZ5TWVs4NWHiDgRWD7b5ZiuzFw122WQJKktEbESWNkxajgzhzuGd4iIdfXzNZn5PIDMvDoizqAEYPs2WSYDr/4sN3iRJGl+qEHW8ARJejU1EhFDwNOAO4AHA79sqkx2rpckSbq3PwcuBU4A3h9NdO6qDLwkSZKqiNgD+Cvg9Zn5NeA64GVN5W/gJUmStNW7gXdk5g11+LXA30fErk1kbh8vSZI0kDJzpx7jjusavhZYUQfX1Ne0WeMlSZLUEgMvSZKklhh4SZIktcQ+XgPolk13NpbXDvdZ1lheS2KosbwA7smRxvIazS2N5TUUzf3fuf/IaGN5AXz2TTdMnmiKDrtvY7e94dbbdmgsL4D7ZmNXhnNNNle23UebO2Zvb/j79BvNfQW45MI9GsvrlkXN/ow9eFk2lteODR5n921w+9/Z8LGxubnV5NYBqA4agFWUJEmaGwy8JEmSWmLgJUmS1BIDL0mSpJYYeEmSJLXEwEuSJA2ciNg7Iq4ZexRQROxSh1dExGU90q+p09fV13nTWa6BlyRJGjj1UUAfBFbXUauB4Ulme11mHlxfh01nuQZekiRpUL0HeEJEvBY4HHjXTC/QG6hKkqSBlJmbI+J1wNeAp9fhiWZ5Z0S8sX6+PDP/qN9lGnjNcxFxIrB8Kmkzc9XMlkaSpLkjIlYCKztGDWdmd3PiM4FfAI8EvjFJlq/LzDO3p0wGXvPfcgMqSZK2VYOscfttRcTBwNOAJwDfjojTZ7pM9vGSJEkDJ0qb4geB12bmz4B30kIfLwMvSZI0iF4O/Cwzx5oXPwA8Angw8LCI2NjxOqameWfH7STWRcTSfhdqU6MkSRo43c2QmTkKPKYOLukxy781sVxrvCRJklpi4CVJktQSAy9JkqSW2MdrAC2a+OZwfQmay2tRg3kBLI3mDu/NjDaWV5PeNPRzThndo7H89hzJxvK69bYdGstr993vaCwvgDtvX9ZYXrvc2Xff2nH9xtDm5vJiM7eP9uqmMj2jDX4/m1zPHG32vPGrBvPae7S5uo0mf6ybO/qLJmtwdmzuFDRnWeMlzWNNBl1aWJoMuiQ1x8BLkiSpJQZekiRJLWmi2XhTRKxqIJ82rJjtAkiSpMG13YFXZq5uoiBtmEcBoiRJWoC8qnGeiYgTgeUdo1bMUlEkSVKf7OM1/yzPzFVjL2DDLJdHkqR5KSJGu569eGJEHB0R/96R5g0Rsb5j+NkRsbZ+3ikiPhgRP4mISyLiexHx8omWaY2XJEkaVHdl5sGdIyLi/sC/dIx6InBbRDwgM68HDgPOq9M+AlwN7J+ZW+q8L51ogdZ4SZIkVZl5AyXQ2q+O2gv4HCXgor5/JyL2BQ4F3piZW8bmzcy3T5S/NV4LUI9+YADUpklJkgZCRKwEVnaMGs7M4Y7hHSJiXcfw2zLzDOA7wGERMQT8N3ABcFREfBk4CLgIeDrwg7Gga6oMvBam5QZZkqRBV4Os4QmSbNPUWJ1HqdkaAs4HLgROAh4NXJmZm6Lr8XsR8ffAMcADMnPP8RZoU6MkSdK9fYcSeB0GnJ+Zt1Nako5ga/+uK4CDImIRQGaeUoO4+06UsYGXJEnSvf0I2BM4HPh+HbcOeAUlKCMz1wMXA2+pTZJExHKY+InyBl6SJGlQ7dB1O4nVAJmZwHeBGzNzc017PvAQttZ4AbwM2A1YHxEXA98AXj/RAu3jJUmSBlJmDk0w7Q+6htcAa7rG3Qb8aT/LtMZLkiSpJQZekiRJLTHwkiRJaol9vAbQUMzNeHuEvu5BN6nR/u5pN6EtDeY1l926aNzuDn27b054YU9f7rx9WWN5ASyKbCyvzdHcem5pcJuNTnxh1azm96vR5n56mv5mLmlwPTc1eKpd1twhy93NHho0WDRGGsxrrjLwmv82RcSqrnErZqEckiRpEgZe81xmru4e1yMQkyRJc8DcbHOSJElagAy8JEmSWmLgJUmS1BIDL0mSpJYYeEmSpIEUEaNdz2o8MSKOjoh/70jzhohY3zH87IhYWz/vHBGfiIj1EfGTiPhUROwy0TINvCRJ0qC6KzMP7nitpjwE+wkdaZ4I3BYRD6jDh7H1QdkfBa7OzP0yc19gPV3Pc+xm4CVJklRl5g2UQGu/Omov4HOUgIv6/p06/RDgHzpmfzNwUEQ8bLz8vY/XwtTrpqpk5jbjJElaqCJiJbCyY9RwZg53DO8QEes6ht+WmWcA3wEOi4gh4L+BC4CjIuLLwEHARcDTgXWZOTo2c2aORsT3gUcAV/Uqk4HXAtTrpqqSJA2aGmQNT5Dkrsw8uMf48yg1W0PA+cCFwEnAo4ErM3NTTPNxYTY1SpIk3dt3KIHXYcD5mXk7sBw4gq39u64ADo7Y+gDk+vkg4JLxMjbwkiRJurcfAXsChwPfr+PWAa+gBGVk5vo67Y0d870RODszfzZexgZekiRpUO3QdTuJ1QCZmcB3gRszc3NNez7wELbWeAG8FNi/3kriBsrVkK+YaIH28ZIkSQMpM4cmmPYHXcNr6LpVRGbeArwYoF7J+BXgKOCs8fI18JpjIuJESjvyeFa0VBRJkjRFmXkVsN9k6Qy85p7lE932oddtIiRJ0vxgHy9JkqSWWOM1gEZzS2N5JdlYXk2WC2Bk6z3t5pTSZ7MZy6PZdbxz0ZLG8romd2gsr13uXNpYXgCbp3n/nV72GNrUWF4/3bJjY3ndsbi5dQRY0txhy13Z3H/+zc2uJjdyd2N5PXj87kN9a/Ls2OCuBOCWRc2Vbkss/Pqghb+GkiRJc4SBlyRJUksMvCRJklpi4CVJktQSAy9JkqSWGHhJkiS1xMBLkiQNnIjYOyKuiYhd6/AudXhFRFzWI/2aOn1dRFwZESdPZ7kGXpIkaeBk5rXAB4HVddRqYHiS2V6XmQcDBwMviYh9+l2ugZckSRpU7wGeEBGvBQ4H3jXF+caeqXxnvwv0zvXz1BQepr2NiZ4BKUnSQhMRK4GVHaOGM/PXtVqZuTkiXgd8DXh6HZ4oy3dGxBspD8N+X2Ze32+ZDLzmrwkfpi1J0qCrQdZkzYfPBH4BPBL4xiRpX5eZZ0bETsDZEXFYZp7XT5lsapQkSQMpIg4GngY8AfjLiHjgVObLzDuAcynNk30x8JIkSQMnSpviB4HXZubPgHcyxT5eEbEYeDzwk36Xa+AlSZIG0cuBn2XmWPPiB4BHAA8GHhYRGztex9Q074yIdcAPgUuBz/e7UPt4SZKkgdPd/yszR4HH1MElPWb5tyaWa42XJElSSwatxmtTRKzajvlXNFQOSZI0gAYq8MrM1ZOnGt92Bm2SJGnADVTgpWLZ4l5N19OzOIYay2somm35bjK/kRxtLC8mvDdff24fbfYrvCSby2v30ZHG8vqNoc2N5QWwJZvbCT/dsmNjee2+5Z7G8lqczX3PAZbmlsbyavKovavh88Z9Gyzd3Q1+15v8bjZtp2xuH+zU3GE2Z9nHS5IkqSUGXpIkSS0x8JIkSWqJgZckSVJLDLwkSZJaYuAlSZLUEgOv+WfsJrArZrkckiTNWxHxrYg4qmvcayPigxGxf0R8OSJ+EhHfq2l/t6Y5PiJOrZ8XRcTHI+K0+tDtSRl4zTOZuTozVwEbZrkokiTNZ58Bju0ad2wd/xVgODP3zcxDgFcDD+lMWAOtD1Ge6/iyzJzS3da8gaokSRpEZwJviYilmXlPRKwA9gT2B87PzLVjCTPzMuCyrvnfB+wGvDBz6ncYNvBaICLiRGD5RGlqTZkkSQMhIlYCKztGDWfmMEBm3hQRFwLPBL5Iqe36LHAgcMkkWR8H/Ag4IjP7ekyHgdfCsdzASpKkrWqQNTxBkrHmxrHA6wTgjzoTRMQXKLVgP87M59fRlwAPBw4FvtNPmezjJUmSBtUXgadGxGOAHTPze8DlwGPGEmTm84DjgV075rsS+EPgjIg4sJ8FGnhJkqSBlJl3AN8CTqPUfgF8GvidiHhOR9Ide8x7HvBnwJcj4remukybGiVJ0iD7DPAF6hWOmXlXRDwLeHdE/BPwv8DtwFu6Z8zML0XE7sDXIuJJmXnjZAsz8JIkSQMrM/8diK5xVwK/P076NcCajuGPAR+b6vJsapQkSWqJgZckSVJLDLwkSZJaYh+vAbR0UXO7fSiai90XMaXHXM2KaLBsTa7n7YuGGssLYErPu5ii26PBso02l1XJrrl9cMfi5vJanEsay+uuRc1+nzZnc/tz6dSerDIlm6f2eLwpa/JQ29Rg0Zos113R5De92RqcpvfnXGSNlyRJUksMvCRJklpi4CVJktQSAy9JkqSW2Ll+/toUEas6hlfMUjkkSdIUGXjNU5m5unO4KwiTJEmTiIhR4NKOUadn5uqIOBd4IHBXHf+WzDyzzvNcyiOGHlHvcN8XAy9JkjSo7srMg8eZ9keZeXGP8S8Cvl3fT+53gQZeDYuIE4Hl25HFioaKIkmSGhQROwGHA0cCX8LAa05Ynpmrpjvz9jYZThT4bU+5JEmabyJiJbCyY9RwZg53DO8QEes6ht+WmWfUz5+KiLGmxqdm5o3A0cDXMvPHEXFjRBySmd/rp0wGXgvPdgV+kiQtFDXIGp4gSb9NjS8C3ls/n16HDbwkSZKaFBG7Ak8BfjsiEhgCMiJelzn152B5Hy9JkqTJvQD4ZGY+ODNXZObewDXAk/rJxMBLkiQNqh0iYl3Ha/UEaV9EuY1Ep8/V8VNmU6MkSRpImTk0zvgjeow7sse49/W7TGu8JEmSWmLgJUmS1BIDL0mSpJbYx2sA3bNlpLG8RnNLY3k1rcmyJVO+UnhSow3mtXzqVzBPyW1D0Vhev9HgoTFKc+VqOr8lDe6CpQ0es5t7d12Ztj3y7sbyui2XNJbXrxY1e2w0qck90GReSxr+Pm1u8JzW3K/T3GWN18Lx/7d352FyVXX+x9/fdAIJm5AfyygyiQFEHJQAOgLDODiKyMgmioKIO3n0URTmpwKuGXUgCoobW+sPcUFARBZhwJWAsogIQUBAZEeRddgkgaT78/vj3E5uiqrqutWnb3WnPq/nqafrbt97qvpW3W+dc+65S4pR72f3uBxmZmbWgmu8VhGSFsDYbzlkZmZm48c1XmZmZmY1ceJlZmZmVhMnXmZmZmY1ceJlZmZmVhMnXmZmZtaXImKo4V6Nh0fEXhFxTmmdIyLiz6XpPSLivOL5kw3x3hkR32i3T1/VaGZmZv1qsaS55RkRsbCoqfMAACAASURBVAFwUmnWDsDjEbGhpAeAHYHLu92ha7zMzMzMCpIeJCVamxWzNgbOIiVcFH8v6za+a7xWPUtajeUlqel8MzOzVVFEzAPmlWYNShosTc+IiEWl6aMknUFKrHaMiAHgVuBKYNeIOB/YGvhdt2Vy4rWKGRlI1czMrN8VSdZgm1We1dRYuJxUszUAXAFcBXwa2Aa4WdKSdrttVyY3NZqZmZmt7DJS4rUjcIWkJ4DpwM6s3L9rcUSsVpqeCTzULrATLzMzM7OV3QQ8D9gJuLaYtwh4Hyv377oEeBtARMwA3gxc3C6wEy8zMzPrVzMahpNYACBJwG+BhyUtLda9ApjDyjVeHwb2KfqJXQmcKenSdjt0Hy8zMzPrS5IG2ix7fcP0KcApDfP+AuxeZZ+u8TIzMzOriRMvMzMzs5o48TIzMzOrift49aGp0bJJu6eG2w99UtlA5PtdMax8ZVPG1zmULVKyzzb3ZIt1zVX/kC3W2gNLR1+pgqeG8n31LVa+4yznF/JqGY9ZgMc1LVusuXPuzxbrgb+snS0WwKWsni3WGsPZQmX9dnw6MgYDZihfwI2WZQs1YbnGy8zMzKwmTrzMzMzMauLEy8zMzKwmTrzMzMzMauLEy8zMzKwmTrzMzMzMauLEy8zMzPpSRAw13Kvx8GL+woi4pTT/R8X8+RGhiNisFOOQYt7LOtmnx/EyMzOzfrVY0twWyw6QdHWT+dcD+wGfL6b3BW7sdIeu8TIzMzPr3DnAXgARsSnwGPBQpxu7xmsSKapAp3e7vaT5+UpjZmY2sUXEPGBeadagpMHS9IyIWFSaPkrSGcXzUyNicfH855I+Wjx/HLgnIrYiJWBnAO/qtExOvCaX6U6ezMzMOlMkWYNtVummqRHgdFJz467Aq6mQeLmp0czMzKya84EDgbslPV5lQ9d4mZmZmVUg6amIOAz4U9VtnXiZmZlZv2rs43WRpMOL5+U+Xg9Jek15Q0mnd7NDJ15mZmbWlyQNtJi/c4v586us34z7eJmZmZnVxImXmZmZWU2ceJmZmZnVxH28Jp4lETG/xbLZOXaw2kC+f/tATNzcfYDIFms44+uUlC3W4il53/+7Fq2bLdajU/IdZxrK978EGM4Ya2nGoi3OeJwtjbzv2VNT8sV74C9rZ4s1Y/rSbLEApj3T9RjVz5Lz2MhpiHzfQZD3dQ5nPm4nIideE4ykBa2WtUnIzMzMbBKYuNUVZmZmZqsYJ15mZmZmNXHiZWZmZlYT9/Gqpl3H9xGzayiHmZmZTUJOvCpo1/F9hDvAm5mZWStOvMzMzKwvRcQQcH1p1umSFkTEQuC5wBLgSeDdkm5pNb/KPp14mZmZWb9aLGlui2UHSLo6IuYBRwN7jjK/I+5cb2ZmZtbapcBmFea35RqvyaWTzv0ttbqrupmZ2aqoqJWaV5o1KGmwND0jIhaVpo+SdEZDmD1YuTlytPltOfGaRDrp3G9mZmZJkWQNtlmlXVPjqRGxGLgTOLiD+R1x4mVmZmb2bAdIurrC/I64j5eZmZlZTVzjZWZmZv2qsY/XRZIOH88dOvEyMzOzviRpoMX8navMr8JNjWZmZmY1ceJlZmZmVhMnXmZmZmY1cR+vPvT86ev3ughNDRBZ4602JePhPbwsW6gpU/K9zsumPpMtFsBFzbs7dGXW6soW66lskZJpGY+1h3k6W6x1Mn4lD2WLlN+lrJ4t1rRnpmeLBTAjY33Er3g0W6yZU/K9Z0s1nC0WwJqR77i9d1q2UAC8PW+4LFzjZWZmZlYTJ15mZmZmNXHiZWZmZlYTJ15mZmZmNXHiZWZmZlYTJ15mZmbWdyJik4i4IyJmFtPrFdOzI+KGJusvjIiXlaabrjcaJ15mZmbWdyTdA5wALChmLQAGx3u/TrzMzMysXx0LbB8RhwA7AceM9w49gKqZmZn1JUlLI+KjwEXAa4vpcd2nE68aRMThQN7hlbsgaX6vy2BmZlaXiJgHzCvNGpTU2Jy4G3AfsBXw8zbhmt2Oo/ItOpx41WO6kx4zM7N6FUlWy35bETEX2AXYHvhNRJzeJtzDwHql6ZnAQ1XL5D5eZmZm1ncitSmeABwi6W7gaNr38VoIvC1WtEW+A7i46n6deJmZmVk/Ogi4W9JI8+LxwJbALGCLiLi39NiXVHP2BHBdRFwHrEUXnfHd1GhmZmZ9p7EZUtIQsG0xOa3FZh8c635d42VmZmZWEydeZmZmZjVx4mVmZmZWEydeZmZmZjVx5/o+9NclD2eLtcbUfOPCrjGwerZYAEuGlmWLNazhbLFy+tfhVv0/u3PLtHzx1lC+0Z83Gcr7G3FJxnCzNJAt1tMZB8xeknnw7XyvEtbI+HFamvl1/opHs8XaTetmi/VY5WE6W3u6+pifbT1Cvu/aGX1QH7Tqv0IzMzOzCcKJl5mZmVlNnHiZmZmZ1cSJl5mZmVlNnHiZmZmZ1cSJl5mZmfWdiNgkIu6IiJnF9HrF9OyIuKHJ+qdExJuK5zMj4tqIeFfV/TrxMjMzs74j6R7gBGBBMWsBpXs3thIRzwF+CgxK+nbV/TrxMjMzs351LLB9RBwC7AQcM8r6awEXAj+QdEI3O/QAqquAiDgcGHUkU0nzx780ZmZmE0NEzAPmlWYNSlpeqyVpaUR8FLgIeG0x3S7kl4FvSTq22zI58Vo1THdSZWZmtrIiyRqt+XA34D5gK+Dno6z7K2CviDhG0gPdlMlNjWZmZtaXImIusAuwPXBoRDx3lE1OB04E/ici1u5mn068zMzMrO9EalM8AThE0t3A0Yzex4uimfGXwI8jYrWq+3XiZWZmZv3oIOBuSSPNi8cDWwKzgC0i4t7SY9/yhpIOA+4FvhcRlXIp9/EyMzOzvtPY/0vSELBtMTmtySZnNmxfeQwvcI2XmZmZWW2ceJmZmZnVxImXmZmZWU3cx6sPLdVQr4vQ1NQY6HURJp3N4qms8W5hjWyx1hnOFir7F9Xqyhcr48tkWsZy5f6U5/x0ZnyZ2c2csnq2WI9lfKGr5Txm244PWt1U8gXMGWuico2XmZmZWU1c45XfkoiY3zBvdg/KYWZmZhOME6/MJC1onNckETMzM7M+5KZGMzMzs5q4xmsSiIjDgeltVpldU1HMzMxsDJx4TQ7TJc1vtdBNmWZmZpODmxrNzMysL0XEJyLixoj4Q0QsiohXRMTCiLglIq6LiMsiYouI+O+I+EJpu1kRcXtErFt1n67xMjMzs74TETsAuwPbSno6ItYHVisWHyDp6oiYBxwNvAVYFBGnSLoJ+CrwKUmPVt2va7zMzMysHz0XeEjS0wCSHpL014Z1LgU2k7QYOBQ4LiL+A1hb0qnd7NQ1XquQ0Trht+snZmZmtqopaqzmlWYNShosnv8M+HRE/An4BXCGpEsaQuwBXA8g6X8i4j3Ad4Cdui2TE69VS9tO+GZmZv2kSLIGWyx7MiK2A/4VeBVwRlGBAXBqRCwG7gQOLm12HDBD0i3dlsmJl5mZmfUlSUPAQmBhRFwPvKNYdICkq5tsMswYb9HqPl5mZmbWd4qrFTcvzZoL3DXe+3WNl5mZmfWjtYCvF0NCLAP+TOoP9qPx3KkTLzMzM+s7kn4P7Nhk0c5ttllIaprsmpsazczMzGrixMvMzMysJk68zMzMzGriPl59aAqRLVZkjGXVPbpstdFXquCpaWO6Snolf4+BbLFWzxYpeTrjYat8obJaHHlLNi3jZz3n+z+U+T+wVPk+A09nLNtwxvdsab5QADyT8XVOmbCfqHxc47VqWBIR84HZPS6HmZmZteEar1WApAUARfJlZmZmE5RrvMzMzMxq4sTLzMzMrCZOvMzMzMxq4sTLzMzMrCZOvMzMzKwvRcRQRCyKiBsj4rqI+L8RMaVYtnNEnN+w/jkRceVY9umrGs3MzKxfLZY0FyAiNgR+AKwDfKZxxeJm2tsBT0bEHEm3d7ND13iZmZlZ35P0ADAP+GBENBuydh/gJ8DpwH7d7sc1XquWJe3G8pLUcpmZmdmqJiLmkZKpEYOSBlutL+n2iBgANmyyeH/gs8D9wFnAkd2UyYnXKmRkIFUzMzODIslqmWh1KiI2AjYHfiNJEbE0IraSdEPVWE686tG2JqoDszOVw8zMzFqIiDnAEPAAsGVp0ZuB9YA7ilbIdUg1YJ+oug8nXjUYa02UbwVkZmY2viJiA+BE4BtFrVZ58f7A6yRdUaz7AuAXOPEyMzMz69iMiFgETAOWAd8DvlxeISJmA7OA5cNISLojIh6LiFdI+m2VHTrxMjMzs74kaaDNsoXAwmJy4ybLt+1mnx5OwszMzKwmTrzMzMzMauLEy8zMzKwm7uPVh9aZtma2WNOnTMsWawrNBgru3kDOeHmLls3V0/O9/wDrK1+spRnfs9y/EDO+TB6dMpwt1lrK90pzv2dLM75rM5Tv4Mh5nAGsGflOi4+wLFusqRm/hJ7J+gmAmU4lKnGNl5mZmVlNnHiZmZmZ1cSJl5mZmVlNnHiZmZmZ1cSJl5mZmVlNnHiZmZmZ1cSJl5mZmfWliBiKiEWlx+ERsVdEnFNa54iI+HNpeo+IOK94fmdErF9lnx58w8zMzPrVYklzyzMiYgPgpNKsHYDHI2JDSQ8AOwKXd7tD13iZmZmZFSQ9SEq0NitmbQycRUq4KP5e1m1813hNUhFxODC9yjaS5o9PaczMzCaeiJgHzCvNGpQ0WJqeERGLStNHSTqDlFjtGBEDwK3AlcCuEXE+sDXwu27L5MRr8pruRMrMzKy1IskabLPKs5oaC5eTarYGgCuAq4BPA9sAN0ta0m2Z3NRoZmZmtrLLSInXjsAVkp4gtTLtzBj6d4ETLzMzM7NGNwHPA3YCri3mLQLexxj6d4ETLzMzM+tfMxqGk1gAIEnAb4GHJS0t1r0CmMPKNV5Tgaer7NB9vMzMzKwvSRpos+z1DdOnAKeMTBfDTkTRDNkx13iZmZmZVRARewK/Bo6ouq1rvMzMzMwqkHQecF4327rGy8zMzKwmrvGaHJZExPyGebO7DTak4TEVZrxiDaNssQCmRcbfFXmLls1qmcu1wVC+WI9lfPvXyPw6l2WMNZzxOFsr38eJpRH5gpH3PdsoY7DhzK/z3mn5Ys3IWLcxlXyvc8pE/UID1lLe/+dE5MRrEpC0oHFek0TMzMzMJjg3NZqZmZnVxImXmZmZWU2ceJmZmZnVxImXmZmZWU2ceJmZmVnfiYiLI2LXhnmHRMSFEbG4uIXQHyPixIiYEhGzI+KGse7XiZeZmZn1o9OA/Rrm7QccBdwmaS7wUuDFwN65durEy8zMzPrRj4DXR8RqABExG3gecM/ICpKWkW6KvVmunTrxMjMzs74j6RHgKmC3YtZ+wA8pDZkdEWsArwauz7VfD6A6eTUbzb4tSZXWNzMzm8wiYh4wrzRrUNJgaXqkufHc4u97ivmbRsQiUhJ2rqQLixqxMXPiNUk1G83ezMzMViiSrME2q5wLHBsR2wJrSPp9kWCN9PHKzk2NZmZm1pckPQlcDJxMqv0ad068zMzMrJ+dBmxNZ4nXFhFxb+mxb9WduanRzMzM+pakc4AoTd8JbNVkvTuBaWPdn2u8zMzMzGrixMvMzMysJk68zMzMzGrixMvMzMysLpL88KPpA5i3qseayGXz6/R75tc5MWNN5LJN1FgTvWx1PlzjZe3MG32VSR8rd7yJGit3vH6IlTveRI2VO14/xModrx9i5Y6Xu2y1ceJlZmZmVhMnXmZmZmY1ceJl7bS7v9WqEit3vIkaK3e8foiVO95EjZU7Xj/Eyh2vH2Lljpe7bLWJopOamZmZmY0z13iZmZmZ1cSJl5mZmVlNnHgZEfH+XpfBzMysHzjxMoCDel2AySgi9o6Ij0TErr0uy2QXEVN7XYbJJiLW63UZrLciYp2a9vPyOvZTVUS8sddl6IY71xsRcY2kbTPG217SlZlizWyz+GlJf+8y7kuAFxWTN0m6oeL2xwP/BFwOvBr4iaTPdVOWUsypwG7lcgEXSVpWMc4HJX2jeP5Pkm4cY7m+DrT8opD0oQ7j/EbSTsXz70k6sLQs6zE4FhGxObBlMXmNpHu7iDEL+LukhyJie2An4DZJZ1eM8y1J720yfxPgQklbVS1bm33tBOwv6QMVtmk8NgQ8BFws6TcV99/2/y/pmgqxNgeOATYFrgc+IukvVcozHiLiHZK+02T+NOC7kvavGO824BOSTs9VxlLsFwP7F49HJb2s4vbj8t3dsI+7Jf3jWOPUzYmXERHLgMebLQIkqd0HqFm85SfRiLhC0g5jKNsdpC/zaLJ4pJbkcEmndhjvOcC5wCbAH4q4LwHuBvaS1Ox9aBbnBmBrSUMRsQbwa0nbdbJti3gbA78C7gOuLcq1DfAPwKsk/bVCrPL7P+aEJiLe0W55sxNJizjXStqmWbnKyyqU6z3ATElHF9N/AdYmvXcflXRixXjrAqcAW5P+BxTPfwG8D9hV0kUdxPkU8E7ScXs68BpgIfAK4DpJh1Qo0ymk4/ztkoaLeVsCFwCflXRKp7FaxN8GeCuwL3AH8GNJX6+wfbNjYybwZuAMSV+pEGsYuIGUuMHKn3lJ+vcKsX4NfBe4FNgT2EHSPp1u3xDrelokl8AxkpZUiHUNcKKkwdK8NYGzgXskvadi2WYBXwHWAt4v6c9Vtm8SbzYrkq2lwCzgZZLu7CJW1u/uFvu4R9Im3W7fM72+Z5EfvX+QTjIDrR7dxGv2fJzKvgHwxwrrf430S3hKad4U4IvA1yvEuabddBev4xTgkCbzPwR8p2Ksa0rPx/z+l9+rJsvW7bJcY37/gN8B/6fxtQLTgUu6iPc9YH7DsRHAp4DzgT91GOePwGrAuqQfNGsU86cCN1QsU5DGKzqz+DzuCNwD7D6G/+cLgc8ANwO/AQ4G7hrrcdKwjxlVjz3gkKI8FwAHAmuNYf+Lxnp8lbad1eSxDSnh+WbFWDOBq4APFdMbFMfxgjG+37sB9xfH6Xkjj4oxrgBuLI73zYt5d+Q8Lhr2V+m7u0WMu8erfOP5cL8KA0DSUMZwU4r+J1NKz5f/6pH0SKeBil90j0p6rJh+FbA3cCdwnKQHI+KwCmV7DfBSFbUHRXmGI+LjpCaJTr0oIv4wUkxg02J6pJbwpRViAWwv6Z2NMyV9LSJuqRhr3Yh4A+n9XyciVvqlL+nHFeNdHRHvl/Tb8syIeC/wcWBOF+Vat1SuAJ5TsUyQauwfLk2fCSBpSUTM6CLe9io1fxaxBHwuIh4A/qXDOEskPQM8ExG3SXqqiLUsIp6pUqBi//Mi4mukWrNZwL4aW1P+zcCvScnbnwEi4tAxxHsWSYsjmlV0tN3mK8BXImIOsB/wy4i4CzhS0qKKRZhe1OaNFGJGeVoVmi0l3dVk9l3AtRFxbZNl7WI9EhGvAS6MiOcBe5FqwL5aJU5ZRGwBfIT0Pz0OGG6/RUv3AxsDG5GSoltp08Wgg3KdQ+qKcRnwu+IzsVyn391NahyXLyrKOuk48TKAlifiiDhEFZoLCs8Bfs+KL73yl5zo/EQN8EPgDcBjETGXdHI9CpgLHA+8V9JPKsR7Rk36TBUnxacrxNly9FUqWdxm2VMVY11Cal6B1NSyR2mZaPP/buFDwGBEXAUcRjr5Hw/cC7yyy3Jd0lCuSyuWCVKN0nKSjgSIiCnA+l3Ea+dxSbd2Wq4iqQxWTnwrJ5ilPlQBvJj0WXprRLwVOu9f12AfUmJzcURcRGoOrZYltVH0VTyQdHxUJun2iDiXVGt2IKmGrmridR/w5dL030rTAjputhxFpQvUSsfCYFGeXwL3jMyv+qMoIhaQfogeKunCKts2krR30RVjH2B+0U9u3Yj4Z0lXdRHyW6Qa2v8Gto6Im1iRiF0u6f4Ov7t372LfE5r7eFlbve68GBF/GKk9iohjgGFJHytOrouq1ixFxM2k/guNJ5oAvi8pd0LVkYi4nfSr9VmLgC9K2jTTft4o6awutptKaob7APAk8B5JP8tRpm7LVVzg8IikTzbM/zywvqT3VYz3HeA24HMqfTFGxCeBF0p6e4dxvt1uuaR3VShTlv51LWKvSapx2Z+UiHwXOLvK/zUinuDZtRGLSYn1IarWN3GkpmsvUnPq6cAFktr9KBl3LTr9rwe8DXhS0sEVYrU7NiTp3RXL9nnS8VrlR2OnsTci9dXbD/hHjaEvVUQMkJpndyb1l3yBpIEK2+8NbAZcL+mn3ZZjonDiZW1103kxIt4m6fvF83+RdFlp2fIr7jqMdb2klxTPrwGOGPnglZOyCvEubrdc0qs6jPN3oFnz7EhTY6XLvHOerEfZT1eJdETsR/rlegawC+nChI9WaTbOXa4icfgW8HLgumL21sDVpJrQJyvGWwf4f8C2rKhhmUvqA/ludXjhxSj76CrxHW9Fd4B9gbdIenWPyjBMOq7OJfWNW+nkJOnLzbZrEWtz4GiKkzVjuKqxyXeGgIdJTb8nNatB73I/3fz4eCGpf+qYX+co+5nVosl1tO3WJ9V67QhsT+p/uQi4otMfDTEOV5D3mhMva6vLE2LLq+qqXmUXEV8FnktqOtiTVPOwNCKeS/oAVrrEOZdursKbCLpMpH8BLAEOlnRHUdv4AVJn6C+odIVWneUqbTuH9MUMqbPubWMsy6akZr0s8RpiV/o8RRriYY6k7xbTPyJ10Ab4vKRfdVGGfUaatCJiPUn/WzVGKVbbfjwVY82n/bAl/1UhVrarGkfZT7ZEusvv2pxXb/6E9u//nq2WtYh3K/AYcBZwJen4qPRjqIiT9QryicB9vGy02ptuOilHi+fNpkfzDeAtwN+BnSQtLeZvDrStJWpZuJS0fYAVJ9erSR1cq9TeZP3FEhHtmrEk6XuZdtVNuY9TafwppQsTvh4RZwJfIvVXqb1cRT+gy4rHT8dy0h+PeK12U3H9/yJddThiC9JQFWuSLmyonHgBn2RFP79fkmr4ujVqP55OA0maP4ZyNFpb0jeL50cXteXj4VhSYpFDN/3scr7OY8awbTMnk2q53kgasmeriLiCdLVrlYu5nhlZX9JTUfWqjQnIiZdBukw+Z+1N45g3rZZ14lhS82LjFYf/C7yOdBVPxyLi34Dvk74UTilmb0fqaLw3aWykA1tsXrZhRPxnq4VVmkUKrUaG3pN0pVHHidc4XAX0+2YzJf0NOKCH5fommU764xSvmarH/zqS/liavlXS7wEi4qguy9Duh1Elks4nDWHQ2I/naOAFpCEwOitUxA8lvbl4/gVJh5WW/UzSaysULdtVjaMVO1Mc6O5HUbPXuTyRrvI6JV0y8jwiNijmPdhFmUbiLT8+iybRHUl3SdkpIh6S9G8dhsp9BXnPOfEyyFx7w4oPSvlDQjFd5YpGgI2aJF1Iuj7SYH9VHQ3sKal8Gfh5EXE2qZ9QpyOLD5AGLczyxVvuoFv8ojuAdAXhlaREoIp2VwF1c6HEORS1IhFxlqRub9ORtVw5T/o542VOMBuv3Cw3I3V7Kf1IEjKFZ5+4KyclLfrx/II0LlQVm5ee70I6/kdsUDFW+SrGxumcVzVW+u4chx8f95FqnUf+f39j5ZqrSq8zIj5DqmGdkiZjGWl8w892UbaRmHOAfyYNILw9sCFpsN5OLQSOJF0lu0r0jXLiZZC/9ibnlYHrtlnWTTPoWg1JFwCSFkXE/UCnndjvG8uXUTPFlYPvJF3deCXwJklVx/CCNKL2icCXRqroiyuUvkS6HVHVfnHl5LJq4jye5cp50s8ZL2eCeXNEvF7SBQ3l3B3o5tiAlZOQxgSlUlLS0I/np6R+Z5X78ZT23c2yZ68s7dxlGZ4lc7KU+0fRYaQR7++D5VfBvpE0zuH8KoGKc8BOwMsl3VHMmwOcEBGHSjq2YryzScnW46Sa48uBr0m6qUoc0nF1NKmv7w+B05p9h08mTrwM8tfeVL76pY2rI+KgUj8GgJHBO5s2gY0imnUojnRfsWUqDaw6Wpwu9t2uUB8APkzqc/M6dXGLjpLtgAXAooj4MKl/xX+Srn7qaEiEBu2ajntWrswn/ZzxciaYhwIXRMSbWDEe3nakxLCr8Y1yJiXk68cDsEapJq7cNFi5r2lEfEzSF4vn+0o6s7TsSEkfrxAuZ7KU+8fHiaRBoYmIV5LGODyYdDXuIPCmCrEOBHaRNHLLppEx1d4G/IzU7aOKbwMHleN1Q2lw2a9GGkx7P+DkSAMkn0ZKwv40lvi94KsarfKVhh3Eaza2D3Qx1ELxpXQ28AwrEq2XkW7J8oain1GVss0j9TP4CCufyL4AnCzppA7jzKzYGX+0eMPAA8CDrPzedd2PoUhujgX+ShqVvasBLSNiiHRxw8gJcGRA126HzshVriNIJ/2NgT+RaqW6PelnixdpaIYFpOSoMcE8oUJyT0QcRzrBvJAVV27eCPxAFe4R2BAzZ1JSjjvSj2cHUs1JlX48RMRC2l9V19FQL0WsnFdW306bZEkVrqzOeWwU8a6TtHXx/DjgwZGLFCJikaS5FWLdoBY3XW+3rE28cTnOiu23ISX9L1WF8cAmDE2A+xb50dsH43w/xUxlfBXpl9zBwL+PMdbupMuvHybd7PZSYI8ev75m94Nb/qgYa13gJNJ4Oa8l3VPu+rG+bxle47iVi5SYvLOIfyNd3KsxdzzSiXWY1Dfl+V2W48Ok5O9O0sl5mwzvVdZ7ZhbbzSENKHoCqa/kg8D5PTzWWt4vtur3HWmw1JNGjtXif3IX6crolvcxHe9jo4hzAzC1eH4z8Mrysm6PiyrL6jrOSC10ewCnkprITwf26tUxNpZHzwvgR+8fwMxel2EiPGhyk+oel2d9ilrpituNjII/tTRvLqmPxWk9fD3jUq7cJ/2xxmMcEkxSAn4YaTDXm0k3uX5hl7FyJiVnk2oubybVQLwX2LLLcn2s9HzfhmVHVow1HslljkQ667EBfIJ01e25xbEx0oq1GXBZqGQz2gAAAl9JREFUxVhDpP5YjY8ngKW9Os5IF1qcXCRb5wFvBdbs5v2aKI+eF8APPybKgx7e6Z7UxLWQNL7SNqRfsn8jNT++rmKslicFUp+LXr3GrOXKedLPGY9xTnyL4+NaYKjL7bMlJaThTtbPdHzkLNdIEvEEsGwsSUTOZGk8jo3iu+MN5WSEVGO7bY7/S6//n6Sx6t4LrNfL15Pz4T5eZoUYw+jpGfZ9NWlAzOeQOsXuJunKiHgR6Qt50o2SP94iYk/S+Fpj6rybO15EPF8t+q01u1Ckw5hTgd1InYtfTUrST5N0bhex2vXZmy5pWoVY2frxROluENFwZ4jG6ToVfbyOB76i4vZAETG3mHeXpP0rxMp+bExUOY+zVU2lO6ubreJ6+StkqqSfFSeuv0m6EkDSzT0s00T3opEkKSL2LS+IiCN7Fa/VibVYVunEGhG7RMTJpOatg4ALgE0l7ddN0lWUYUDSOpLWljS1eD4yXfVkuF/p+RENy15XtWgtnjebrtMrJR2j0j0ZJS2StCMV7xyQ89iY6DIfZ6sUJ17WVyLiiYh4vMnjCeB5PSxa+WqmxQ3LXC3dXM6T/njEy+EIUjPUlpL2lPQDSX/vUVmayXl7sK1Ln8WXNnw2XzKmUo5BPyVLVg+P42V9RdLavS5DC1tHxOMU1fLFc4rp6b0r1oSW86Q/HvHGTFKuEdbHS7ZaKk3GYQHMuuDEy2wC8EmnK7mbpiZqU9dE5h8MZhW5c72ZTUq5O++6M7CZ1cGJl5mZmVlN3LnezMzMrCZOvMzMzMxq4sTLzMzMrCZOvMzMzMxq8v8BoZW9uil8DREAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 720x720 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "g = sns.clustermap(V_modified)\n",
    "g.fig.suptitle('Rescaled Covariance Matrix of Asset Returns', fontsize = 20)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (e) Repeat exercise 2, this time using $V^{'}$ as covariance matrix. What allocation method has been most impacted by the re-scaling of spectral variances?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In each of the 3 sections below, we use modified versions of the original algorithms implemented in the package. The only change is that wherever **covariance matrix is calculated from the data using asset_returns.cov(), we will use V_modified.** Everything else remains the same. These modified code files are present in the same folder with the following names - **hrp_modified.py, cla_modified.py, mvo_modified.py**. Except the changed function, the classes inherit all the other functions as it is from the respective parent classes."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (i) HRP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "hrp_modified = HierarchicalRiskParityModified()\n",
    "hrp_modified.allocate(asset_prices=stock_prices,\n",
    "                      resample_by='W',\n",
    "                      covariance=V_modified)\n",
    "hrp_modified_weights = hrp_modified.weights.sort_values(by=0, ascending=False, axis=1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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Ppy3336be++9lx49elCvXj2+9KUv8eMf/5hDDz0UgMmTJ9OnTx+aN2/OjjvuyOjRowGYOHEirVu35pNPPinb37333stXvvIVAJ555hl69+5N8+bNadOmDWeeeSYff/xxWduI4LrrrqNbt25069atbNmUKVMAGDNmDLvuuitNmzalQ4cODB06tGzbadOmERH8+c9/pmPHjrRs2ZLLLrusbP0nn3zC5ZdfTpcuXWjSpAm77bYbM2bMAOC1117jwAMPpEWLFmy//faMGjWq2j467rjjuPPOO8vO84477uDII49k8803L2tT3bl+7WtfA2DnnXemcePG3HnnnTzxxBO0b9+eK6+8ktatWzN48OCyZQBTp06lRYsWPP/88wDMnj2bVq1afS5Gng2FkiRJUiV69uxJnz59uOaaaz6zbv78+Rx22GH87//+L/PmzePss8/msMMOY968eWVtbr31Vm688UYWL15Mp06dABg5ciS33nors2bNYurUqfTu3ZvBgwczf/58unfvzqWXXlq2/e67786kSZOYP38+AwcO5Oijj67R1w88+uij9O3bl8aNG1e6fvny5Xzzm9/koIMO4t133+U3v/kNxx13HK+//jq9evWiUaNGPPbYY2XtR4wYwcCBAwGoX78+v/zlL3nvvfeYMGECf//73/nd73632v7vu+8+Jk6cyKuvvvqZYzdq1Ijhw4ezYMECxowZw/XXX8999923WpunnnqK119/nb///e8MGzaMyZMnA3Dttddyxx13MHbsWBYtWsTNN9/MlltuyQcffMCBBx7IwIEDeffddxk5ciRnnHFGpcdfpW3btvTo0YOHH34YyIL0CSecsFqb6s71ySefBODFF19kyZIlHHvssQD897//Zf78+UyfPp0bb7xxtf116dKFK6+8kkGDBrF06VIGDx7MiSeeWKNLVWuboVCSJEmqwrBhw/jNb37D3LlzV1s+ZswYunXrxvHHH09JSQkDBgxghx124P777y9rc9JJJ7HjjjtSUlLCZpttBsDgwYPp0qULzZo145BDDqFLly4ccMABlJSUcPTRR/PCCy+UbT9o0CBKS0spKSnhnHPOYdmyZTW6P23evHm0adOmyvX//Oc/WbJkCeeffz6bb745+++/P/369eOOO+4AYMCAAWWPFy9ezNixYxkwYAAAu+22G3vuuSclJSV07tyZ//mf/2HcuHGr7f+CCy6gRYsWbLHFFp85dp8+ffjyl79MvXr1+MpXvsKAAQM+s/1PfvITtthiC3beeWd23nlnXnzxRSC7p/NnP/sZ22+/PRHBzjvvTGlpKQ888ACdO3dm8ODBlJSUsOuuu3LUUUdx1113VdtPJ5xwAsOHD+e1115jwYIF9O7de7X1NTnXiurVq8ell15KgwYNKj3/U089la5du9KrVy/eeeed1UZCNyZDoSRJklSFnXbaiX79+nHFFVestnz27Nllo3+rdOrUiVmzZpU979Chw2f2t/XWW5c93mKLLT7zvPykLNdccw3du3enWbNmNG/enIULF/Lee++tsebS0lLeeeedKtfPnj2bDh06UK/ep1GgfO0DBw7knnvuYdmyZdxzzz189atfLTvXN954g379+tG6dWuaNm3KhRde+JmaKjvvVSZOnMjXv/51WrVqRbNmzbjhhhs+s33r1q3LHm+55ZZlfTJjxgy6dOnymX1Onz6diRMn0rx587Kf22+/nf/+979V1gHw7W9/m8cee4zf/va3HH/88Z9ZX5NzrahVq1Y0bNiw2jannnoq//73v/ne975HgwYNqm1bVwyFkiRJUjUuvfRS/vCHP6wW+Nq2bcv06dNXa/f222/Trl27sufr88Xi48eP56qrrmLUqFG8//77LFiwgGbNmpFSWuO2BxxwAA899BAffPBBpevbtm3LjBkzVpv8pnztPXr0oFOnTjz44IOrXToKcPrpp7PDDjvw5ptvsmjRIi6//PLP1FTdeQ8cOJDDDz+cGTNmsHDhQoYMGVKjc4IsbE6dOrXS5fvttx8LFiwo+1myZAnXX399tfvbcsstOeSQQ7j++usrDYU1OdeK1vSaL1myhO9///ucfPLJDB06lPnz51fbvq4YCiVJkqRqdO3alWOPPZZf//rXZcsOPfRQ3njjDUaMGMGKFSu48847efXVV+nXr98GOebixYspKSmhVatWrFixgmHDhrFo0aIabXv88cfToUMHjjrqKF577TVWrlzJvHnzuPzyyxk7diy9evViyy235KqrrmL58uU88cQT3H///fTv379sHwMHDuRXv/oVTz75JEcfffRqdTVt2pTGjRvz2muvrTF4VXZeLVq0oGHDhjzzzDOMGDGixtuecsop/PjHP+bNN98kpcRLL73EvHnz6NevH2+88Qa33nory5cv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2Wyzzdh3332JCJ555hlmz57N1VdfTaNGjWjYsGFZGOjatSsHHnggDRo0oFWrVpx99tmMGzeu0rpuuOEGLrvsMtq3b0+DBg0YOnQod999NytWrODuu++mX79+fO1rX6NBgwb89Kc/pV69yj/yv//++6xcuZI2bdpU2Qe33347/+///T+++tWv0qBBA37+858zYcIEpk2bVnZeq0bw7r77bnr37k3btm0BOProo2nbti316tXj2GOPpVu3bjzzzDNl+27bti3f+973KCkpYYsttvjMsQcNGkRpaSklJSWcc845LFu2jNdff71s/T777MNQLcb9AAAgAElEQVShhx5K/fr1Of7443nxxRcBqu3nG264gQsuuIDu3btTUlLChRdeyKRJk6odLWzfvj3bb789jz76KMOHD+f444//TJs1nWtljjjiCPbee2/q1av3mbBXr149hg8fzq9//WsOP/xwfvSjH7HrrrtWu7/18bmafTSldF1KqQtwHnBxvvgdoGNKaVfgbGBERDStuG1EnBYRz0XEc3Pnzq27oiVJkvSFdN9997F48WKeeOIJXnvtNd577z0A5s6dy9KlS9ltt91o3rw5zZs3p2/fvqz6DHruuefStWtXDjroILbddluuuOIKILuksVOnTpSUfHauxzlz5tC/f3/atWtH06ZNGTRoUNnxKpo+fTpHHnlk2bG7d+9O/fr1mTNnDrNnz6ZDhw5lbRs1akRpaWml+9lqq62oV6/eaqN3Fc2ePZtOnTqVPW/cuDGlpaXMmjWLiKB///7ccccdQDbyVX6imOHDh7PLLruU1fnvf/97tXMqX2dlrrnmGrp3706zZs1o3rw5CxcuXG371q1blz3ecsst+eijj1ixYkW1/Tx9+nTOOuussppatGhBSolZs2ZVW8sJJ5zALbfcwh133FFpKFzTuVZmTeffuXNnvv71rzNt2rSykeDaUlehcBZQ/qzb58uqMhL4FkBKaVlKaV7++F/AVGC7ihuklG5MKfVMKfVs1arVBitckiRJxbbffvtx0kknld0/17JlS7bYYgteeeUVFixYwIIFC1i4cCFLliwBoEmTJvziF7/grbfeYvTo0Vx77bX8/e9/p0OHDrz99tuVTqpy4YUXEhG8/PLLLFq0iNtuu63sssyKOnTowIMPPlh27AULFvDRRx/Rrl072rRpw4wZn16gt3TpUubNm1fpfrbcckt69+7NX/7ylyrPvW3btquNon3wwQfMmzePdu2yi/4GDBjA3XffzfTp05k4cSJHHXUUkIWvU089ld/+9rfMmzePBQsWsNNOO612ThFR5XHHjx/PVVddxahRo3j//fdZsGABzZo1q7JPKvZPVf3coUMHfv/736/Wdx9++CF77bVXtfs86qijGDNmDNtuuy0dO3Zcbd2azrWq86zu/AHGjBnDhAkT+MY3vsG5555bbdv1VVeh8FmgW0RsExGbA/2B0eUbRES3ck8PA97Ml7fKJ6ohIrYFugFv1UnVkiRJEvD973+fRx55hBdffJF69epx6qmn8oMf/IB3330XgFmzZvHQQw8B8MADDzBlyhRSSjRr1oz69etTr1499thjD9q0acP555/PBx98wEcffcQ//vEPABYvXkzjxo1p1qwZs2bN4uqrr66yliFDhnDRRReVhbW5c+fy17/+FYDvfOc7PPDAAzz11FN8/PHHXHLJJWWT3FTmqquu4pZbbuHqq68uC48vvvjiavcN/ulPf2LSpEksW7aMCy+8kF69etG5c2cAdt11V1q2bMkpp5zCwQcfXDaRygcffEBEsGqw5k9/+tNqM3iuyeLFiykpKaFVq1asWLGCYcOGsWjRojVvCNX285AhQ/j5z3/OK6+8AsDChQu566671rjPRo0a8dhjj3HTTTd9Zt2aznXrrbdm5syZfPzxxzWqH7LJik455RRuuukm/vznP3P//fczduzYGm+/tuokFKaUVgBnAg8Bk4FRKaVXImJYRByeNzszIl6JiElkl4memC//GvBSvvxuYEhKaT6SJElSHWnVqhUnnHBC2WQyV155JV27dmXPPfekadOmHHDAAWX3u7355psccMABNG7cmN69e3PGGWfw9a9/nfr163P//fczZcoUOnbsSPv27bnzzjsB+MlPfsLzzz9Ps2bNOOyww/j2t79dZS1nnXUWhx9+OAcddBBNmjRhzz33ZOLEiQDsuOOOXHfddQwcOJA2bdqw1VZb0b59+yr3tddee/HYY4/x2GOPse2229KiRQtOO+00Dj30UAAOOOAAfvrTn3LUUUfRpk0bpk6dWnbv5CoDBw7k0UcfZeDAgWXLevTowTnnnEPv3r3Zeuutefnll9l7771r3N8HH3wwffv2ZbvttqNTp040bNhwjZdbrlJdPx955JGc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\n",
      "text/plain": [
       "<Figure size 1080x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(15, 8))\n",
    "ax = fig.add_subplot(111)\n",
    "index = np.arange(N)\n",
    "width = 0.35\n",
    "ax.bar(index, hrp_weights[hrp_modified_weights.columns].values[0], width, label=\"Normal Covariance Matrix\")\n",
    "ax.bar(index + width, hrp_modified_weights.values[0], width, label=\"Rescaled Covariance Matrix\")\n",
    "ax.set_xticks(index + width / 2)\n",
    "ax.set_xticklabels(hrp_modified_weights.columns)\n",
    "plt.xlabel('Tickers', fontsize=12)\n",
    "plt.ylabel('Weights', fontsize=12)\n",
    "plt.title('Comparision of HRP Weights after Rescaling Covariances', fontsize=12)\n",
    "plt.legend(fontsize='large')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (ii) CLA"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "cla_modified = CLAModified()\n",
    "cla_modified.allocate(asset_prices=stock_prices_downsampled,\n",
    "                      solution='cla_turning_points',\n",
    "                      covariance=V_modified)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "cla_modified_weights = cla_modified.weights.mean(axis=0).reset_index()\n",
    "cla_modified_weights.index = cla_modified_weights['index']\n",
    "cla_modified_weights = cla_modified_weights.drop('index', 1)\n",
    "cla_modified_weights = cla_modified_weights.T\n",
    "cla_modified_weights = cla_modified_weights.sort_values(by=0, ascending=False, axis=1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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wuzZsznuuONo1aoVu+22G5MnT65axplnnknXrl1p1aoVu+66K0899VS96h4xYgRvv/029913H3369KFRo0ZsscUW/PCHP+Swww4DYOLEifTv3582bdqwww47MHr0aADGjx9Phw4dVrq34n333cfnP/95AJ577jn69etHmzZt6NixI2eccQYff/xxVduI4Prrr2ebbbZhm222qZo2adIkAMaMGcMuu+xCq1at6Nq1K8OGDat67+TJk4kIfve739GtWzfat2/PZZddVjX/k08+4fLLL6dnz560bNmSXXfdlalTpwLw6quvcuCBB9K2bVu222477rrrrlr30XHHHcedd95ZtZ133HEHRx11FJtssklVm9q29Ytf/CIAO+20Ey1atODOO+/k8ccfp0uXLlx55ZV06NCBIUOGVE0DePPNN2nbti1///vfAZgxYwaVlZUbvAfZ4CdJkqTPtL59+9K/f3+uvvrq1ebNmTOHww8/nO9+97vMnj2bs846i8MPP5zZs2dXtbntttu46aabWLBgAd27dwdg1KhR3HbbbUyfPp0333yTfv36MWTIEObMmUPv3r259NJLq96/2267MWHCBObMmcPgwYM55phj6jV0/6OPPsohhxxCixYtqp2/dOlSvvKVr3DQQQfx/vvvc+2113Lcccfx2muvsccee9C8eXMee+yxqvYjR45k8ODBADRu3Jif//znzJo1i3HjxvHnP/+ZX/3qVyst//7772f8+PG88sorq627efPmjBgxgrlz5zJmzBhuuOEG7r///pXaPP3007z22mv8+c9/Zvjw4UycOBGAa665hjvuuIOxY8cyf/58brnlFjbbbDMWLVrEgQceyODBg3n//fcZNWoU3/rWt6pd/wqdOnWiT58+PPLII0AWlk888cSV2tS2rU8++SQAL774IgsXLuQb3/gGAO+++y5z5sxhypQp3HTTTSstr2fPnlx55ZUcf/zxLF68mCFDhnDSSSfV67TShmTwkyRJ0mfe8OHDufbaa5k5c+ZK08eMGcM222zDCSecQEVFBYMGDWL77bfngQceqGpz8skns8MOO1BRUUGTJk0AGDJkCD179qR169Yceuih9OzZkwMOOICKigqOOeYY/vGPf1S9//jjj6ddu3ZUVFRw9tlns2TJknpdLzZ79mw6duxY4/xnn32WhQsXct5557HJJpuw//77M2DAAO644w4ABg0aVPV8wYIFjB07lkGDBgGw6667sueee1JRUUGPHj347//+b5544omVln/++efTtm1bNt1009XW3b9/fz73uc/RqFEjPv/5zzNo0KDV3n/JJZew6aabstNOO7HTTjvx4osvAtk1lj/+8Y/ZbrvtiAh22mkn2rVrx4MPPkiPHj0YMmQIFRUV7LLLLhx99NHcfffdte6nE088kREjRvDqq68yd+5c+vXrt9L8+mzrqho1asSll15K06ZNq93+U089lV69erHHHnvwzjvvrNSjuaEY/CRJkvSZt+OOOzJgwACuuOKKlabPmDGjqhdvhe7duzN9+vSq1127dl1teVtuuWXV80033XS116UDoVx99dX07t2b1q1b06ZNG+bNm8esWbPqrLldu3a88847Nc6fMWMGXbt2Xek+iqW1Dx48mHvvvZclS5Zw77338oUvfKFqW19//XUGDBhAhw4daNWqFRdccMFqNVW33SuMHz+eL33pS1RWVtK6dWtuvPHG1d7foUOHquebbbZZ1T6ZOnUqPXv2XG2ZU6ZMYfz48bRp06bqcfvtt/Puu+/WWAfA1772NR577DGuu+46TjjhhNXm12dbV1VZWUmzZs1qbXPqqafyr3/9i+985zs0bdq01rblYPCTJEmSgEsvvZTf/OY3K4W6Tp06MWXKlJXavf3223Tu3Lnq9brcXPupp57iqquu4q677uKDDz5g7ty5tG7dmpRSne894IADePjhh1m0aFG18zt16sTUqVNXGnCmtPY+ffrQvXt3HnrooZVO8wQ4/fTT2X777XnjjTeYP38+l19++Wo11bbdgwcP5ogjjmDq1KnMmzePoUOH1mubIAuUb775ZrXT99tvP+bOnVv1WLhwITfccEOty9tss8049NBDueGGG6oNfvXZ1lXV9ZkvXLiQ733ve3zzm99k2LBhzJkzp9b25WDwkyRJkoBevXrxjW98g1/+8pdV0w477DBef/11Ro4cybJly7jzzjt55ZVXGDBgwHpZ54IFC6ioqKCyspJly5YxfPhw5s+fX6/3nnDCCXTt2pWjjz6aV199leXLlzN79mwuv/xyxo4dyx577MFmm23GVVddxdKlS3n88cd54IEHGDhwYNUyBg8ezC9+8QuefPJJjjnmmJXqatWqFS1atODVV1+tM1xVt11t27alWbNmPPfcc4wcObLe7z3llFP44Q9/yBtvvEFKiZdeeonZs2czYMAAXn/9dW677TaWLl3K0qVLef7556uuDazN5ZdfzhNPPEGPHj2qrbW2bd1yyy3X+P6EZ555Jn379uXmm2/m8MMPZ+jQoWv0/oZg8JMkSZJyF1988Uo9aCuuLfvZz35Gu3btuOqqq3jwwQfX2z3yDj74YA455BC23XZbunfvTrNmzWo9hbJU06ZNefTRR9l+++058MADadWqFbvvvjuzZs1ijz32YJNNNuGBBx7goYceon379nzrW99ixIgRbL/99lXLWHHt3f7777/SNl199dWMHDmSli1bcuqpp1YNalJfv/rVr7j44otp2bIlw4cP59hjj633e8866yyOPfZYDjroIFq1asU3v/lNPvzwQ1q2bMkjjzzCqFGj6NSpEx06dODcc89lyZIldS6zU6dO7LPPPtXOq2tbhw0bxkknnUSbNm3qHEUU4A9/+AN//OMfqwLkNddcw9///nduv/32emx9w4n6drlujPr27ZteeOGFDV2GarGmN2hdkxuuSpKkjd/EiRPp3bv3hi5D+tSr6ViKiL+llPrW9X57/CRJkiSp4Ax+kiRJklRwBj9JkiRJKjiDnyRJkiQVnMFPkiRJkgrO4CdJkiRJBWfwkyRJkqSCK1vwi4hDIuK1iJgUEedVM//nETEhf7weEXPLVZskSZIkFVlZgl9ENAauBw4F+gCDIqJPaZuU0vdTSjunlHYGrgXuLUdtkiRJ0saiR48ePProo2V/bzndfvvtHHTQQRu6jA1m6NCh/OhHPyr7eivKtJ7dgUkppbcAImIUcCTwSg3tBwGXlKk2SZIkldOw1g28/Hn1btqjRw/ee+89GjduTIsWLTjkkEO47rrraNGiRQMWuGE899xzDBs2jGeeeYZGjRrRq1cvTj/9dIYMGVLWOo477jiOO+64sq6zNpMnT2arrbZi55135h//+EfV9FmzZtGpUyc6derE5MmT61zOrbfeys0338zTTz9da7sbb7xxXUteK+U61bMzMLXk9bR82moiojuwFfBYDfNPi4gXIuKFmTNnrvdCJUmS9NnywAMPsHDhQiZMmMA//vEPfvKTn2zokta7cePGsf/++7PffvsxadIkZs+ezQ033MBDDz1U1jqWLVtW1vWticWLF/Ovf/2r6vXIkSPZaqut1us6Pvnkk/W6vDWxMQ7uMhC4J6VU7V5JKd2UUuqbUupbWVlZ5tIkSZJUVB06dODggw9mwoQJVdOWLFnCD37wA7p168aWW27J0KFD+fDDD4GsR2jAgAG0adOGtm3bsu+++7J8+XIApk6dyte+9jUqKytp164dZ5xxBgBvvvkm+++/P+3ataN9+/Ycd9xxzJ1b/dAWy5cv54orrqBnz560a9eOY489ljlz5lTNv+222+jevTvt2rXjsssuq3XbzjnnHE466STOPfdc2rdvT0Sw6667ctddd1W1+c1vfkOvXr1o27YtRxxxBDNmzADg9NNP5wc/+MFKyzvyyCO55pprAKpqbNmyJX369OG+++6ranfrrbey99578/3vf5927doxbNgwbr31VvbZZ5+qNmeeeSZdu3alVatW7Lrrrjz11FNV84YNG8axxx7LiSeeSMuWLdlhhx144YUXqubXtJ8BbrnlFnr37s3mm2/OwQcfzJQpU2rdRyeccAK/+93vql6PGDGCE088caU2NW3rxIkTGTp0KOPGjaNFixa0adMGgJNPPpnTTz+dww47jObNm/OXv/yFk08+mYsuugiAK6+8kj322KMqEN9www3ssMMOfPTRR7XWujbKFfymA11LXnfJp1VnIHBHg1ckSZIklZg2bRoPPfQQvXr1qpp23nnn8frrrzNhwgQmTZrE9OnTGT58OAA/+9nP6NKlCzNnzuS9997j8ssvJyL45JNPGDBgAN27d2fy5MlMnz6dgQMHApBS4vzzz2fGjBlMnDiRqVOnMmzYsGrrufbaa7n//vt54oknmDFjBptvvjnf/va3AXjllVc4/fTTue2225gxYwazZ89m2rRp1S5n8eLFjBs3jq9//es1bvtjjz3G+eefz1133cU777xD9+7dq2oeNGgQd955JyklAD744AMeeeSRqvk9e/bkqaeeYt68eVxyySUcf/zxvPPOO1XLHj9+PFtvvTXvvfceF1544Wrr3m233ZgwYQJz5sxh8ODBHHPMMSsFn9GjRzNw4EDmzp3LEUccURXuatvPf/jDH7j88su59957mTlzJvvuuy+DBg2qcfsBjj/+eEaNGsUnn3zCK6+8wsKFC9ljjz1WalPTtvbu3Zsbb7yRfv36sXDhwpXC/MiRI7nwwgtZsGDBSoEXskDetGlTfvzjH/PGG29wwQUX8Pvf/55mzZrVWuvaKFfwex7YJiK2iohNyMLd6FUbRcT2wObAuDLVJUmSpM+4r371q7Rs2ZKuXbuyxRZbcOmllwJZSLvpppv4+c9/Ttu2bWnZsiUXXHABo0aNAqBJkya88847TJkyhSZNmrDvvvsSETz33HPMmDGDn/70pzRv3pxmzZpV/eDv1asXBx54IE2bNqWyspKzzjqLJ554otq6brzxRi677DK6dOlC06ZNGTZsGPfccw/Lli3jnnvuYcCAAXzxi1+kadOm/OhHP6JRo+p/2n/wwQcsX76cjh071rgPbr/9dv7rv/6LL3zhCzRt2pSf/OQnjBs3jsmTJ1dt14pKKiFAAAAgAElEQVSeuHvuuYd+/frRqVMnAI455hg6depEo0aN+MY3vsE222zDc889V7XsTp068Z3vfIeKigo23XTT1dZ9/PHH065dOyoqKjj77LNZsmQJr732WtX8ffbZh8MOO4zGjRtzwgkn8OKLLwLUup9vvPFGzj//fHr37k1FRQUXXHABEyZMqLXXr0uXLmy33XY8+uijjBgxghNOOGG1NnVta3WOPPJI9t57bxo1arRaoGvUqBEjRozgl7/8JUcccQT/8z//wy677FLr8tZWWYJfSmkZcAbwMDARuCul9HJEDI+II0qaDgRGpRV/TpAkSZIa2P3338+CBQt4/PHHefXVV5k1axYAM2fOZPHixey66660adOGNm3acMghh7BinIlzzjmHXr16cdBBB7H11ltzxRVXANnph927d6eiYvVxFN977z0GDhxI586dadWqFccff3zV+lY1ZcoUjjrqqKp19+7dm8aNG/Pee+8xY8YMunb9zwl1zZs3p127dtUuZ/PNN6dRo0Yr9cKtasaMGXTv3r3qdYsWLWjXrh3Tp08nIhg4cCB33JGdlDdy5MiVBmcZMWIEO++8c1Wd//rXv1baptI6q3P11VfTu3dvWrduTZs2bZg3b95K7+/QoUPV880224yPPvqIZcuW1bqfp0yZwplnnllVU9u2bUkpMX16TScdZk488URuvfVW7rjjjmqDX13bWp26tr9Hjx586UtfYvLkyVU9ug2hbNf4pZTGppS2TSn1TCldlk+7OKU0uqTNsJTSavf4kyRJkhrafvvtx8knn1x1PVv79u3ZdNNNefnll5k7dy5z585l3rx5LFy4EICWLVvys5/9jLfeeovRo0dzzTXX8Oc//5muXbvy9ttvVzuQyQUXXEBE8M9//pP58+fz+9//npr6PLp27cpDDz1Ute65c+fy0Ucf0blzZzp27MjUqf8ZO3Hx4sXMnj272uVsttlm9OvXj//3//5fjdveqVOnlXrDFi1axOzZs+ncORuPcdCgQdxzzz1MmTKF8ePHc/TRRwNZwDr11FO57rrrmD17NnPnzmXHHXdcaZsiosb1PvXUU1x11VXcddddfPDBB8ydO5fWrVvXuE9W3T817eeuXbvy61//eqV99+GHH7LXXnvVusyjjz6aMWPGsPXWW9OtW7eV5tW1rTVtZ23bDzBmzBjGjRvHl7/8Zc4555xa266LjXFwF0mSJGmD+N73vsef/vQnXnzxRRo1asSpp57K97//fd5//30Apk+fzsMPPwzAgw8+yKRJk0gp0bp1axo3bkyjRo3Yfffd6dixI+eddx6LFi3io48+4q9//SsACxYsoEWLFrRu3Zrp06fz05/+tMZahg4dyoUXXlgVyGbOnMkf/vAHAL7+9a/z4IMP8vTTT/Pxxx9z8cUXVw0sU52rrrqKW2+9lZ/+9KdVAfHFF19c6Tq+3/72t0yYMIElS5ZwwQUXsMcee9CjRw8AdtllF9q3b88pp5zCwQcfXDV4yaJFi4gIVgy6+Nvf/nalkTHrsmDBAioqKqisrGTZsmUMHz6c+fPn1+u9te3noUOH8pOf/ISXX34ZgHnz5nH33XfXuczmzZvz2GOPcfPNN682r65t3XLLLZk2bRoff/xxveqHbICgU045hZtvvpnf/e53PPDAA4wdO7be718TBj9JkiQpV1lZyYknnlg1gMuVV15Jr1692HPPPWnVqhUHHHBA1fVnb7zxBgcccAAtWrSgX79+fOtb3+JLX/oSjRs35oEHHmDSpEl069aNLl26cOeddwJwySWX8Pe//53WrVtz+OGH87Wvfa3GWs4880yOOOIIDjroIFq2bMmee+7J+PHjAdhhhx24/vrrGTx4MB07dmTzzTenS5cuNS5rr7324rHHHuOxxx5j6623pm3btpx22mkcdthhABxwwAH86Ec/4uijj6Zjx468+eabVdcyrjB48GAeffRRBg8eXDWtT58+nH322fTr148tt9ySf/7zn+y999713t8HH3wwhxxyCNtuuy3du3enWbNmdZ4auUJt+/moo47i3HPPZeDAgbRq1Yodd9yx3reu6Nu3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\n",
      "text/plain": [
       "<Figure size 1080x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(15, 8))\n",
    "ax = fig.add_subplot(111)\n",
    "index = np.arange(N)\n",
    "width = 0.35\n",
    "ax.bar(index, cla_weights[cla_modified_weights.columns].values[0], width, label='Normal Covariance Matrix')\n",
    "ax.bar(index + width, cla_modified_weights.values[0], width, label=\"Rescaled Covariance Matrix\")\n",
    "ax.set_xticks(index + width / 2)\n",
    "ax.set_xticklabels(cla_modified_weights.columns)\n",
    "plt.xlabel('Tickers', fontsize=12)\n",
    "plt.ylabel('Weights', fontsize=12)\n",
    "plt.title('Comparision of CLA Weights after Rescaling Covariances', fontsize=12)\n",
    "plt.legend(fontsize='large')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (iii) IVP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [],
   "source": [
    "mvo_modified = MeanVarianceOptimisationModified()\n",
    "mvo_modified.allocate(asset_prices=stock_prices,\n",
    "                      covariance=V_modified,\n",
    "                      solution='inverse_variance',\n",
    "                      resample_by='W')\n",
    "ivp_modified_weights = mvo_modified.weights.sort_values(by=0, ascending=False, axis=1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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fZchSZIkSevF3/72tw9SSh1q03ajDIU9e/ZkwoQJ67sMSZIkSVovImJqbds6fFSSJEmSCsxQKEmSJEkFZiiUJEmSpAIzFEqSJElSgW2UE81IkiTpi2/ZsmVMnz6dTz75ZH2XIm2QmjZtSrdu3dhkk03Waj+GQkmSJK0X06dPp2XLlvTs2ZOIWN/lSBuUlBJz585l+vTpbLHFFmu1L4ePSpIkab345JNPKC8vNxBKn0NEUF5evk562g2FkiRJWm8MhNLnt65+fgyFkiRJklRghkJJkiRpAzN8+HCGDh26vsuolRYtWvDOO++s7zLWi7Fjx7LNNtus7zLWyIlmJEmS9IXQ85yH63X/Uy4/tNZte/bsyZIlS/jXv/5F8+bNAbjxxhu57bbbeOqpp+qpwnVn4cKFXHjhhdx3333MmzePjh07cthhh3HBBRfQvn37Bq1l8eLFDXq8Ndl33315+umnmThxIjvuuGPF8iOPPJIHHniAv/71r+y7775r3E9E8Pbbb9O7d+9q2+y11168+eab66LsemVPoSRJklSFzz77jF/96ldrvZ+UEitWrFgHFdXOp59+yte//nVeffVVHn30URYuXMi4ceMoLy/nhRdeaLA6li9f3mDHqqutt96akSNHVryeO3cu48aNo0OHDuvsGF/k86/MUChJkiRV4Uc/+hFXXXUV8+fPr3L9c889x6677krr1q3Zddddee655yrW7bvvvpx//vnsscceNGvWjHfeeYd9992XCy64gN13350WLVpw2GGHMXfuXIYMGUKrVq3YddddmTJlSsU+zjzzTLp3706rVq3YZZddGDt2bK3qHjlyJO+++y73338/2223HY0aNeJLX/oSP/nJTzjkkEMAeP3119l3331p06YN22+/PaNHjwZg/PjxdOrUic8++6xif/fffz9f+cpXAHjhhRfo378/bdq0oXPnzpxxxhl8+umnFW0jgmuvvZatttqKrbbaqmLZpEmTAHj44YfZeeedadWqFd27d2f48OEV206ZMoWI4JZbbmHzzTenffv2XHrppRXrP/vsMy677DJ69epFy5Yt2WWXXZg2bRoAb7zxBgceeCDt2rVjm2224e67767xGg0ZMoS77rqr4jzvuOMOjjzySDbddNOKNjWd69577w3AjjvuSIsWLbjrrrt46qmn6NatG1dccQWdOnXi5JNPrlgGMHnyZNq1a8dLL70EwMyZM+nQocMXoufZUChJkiRVoW/fvuy7775cddVVq62bN28ehx56KP/93//N3LlzOeusszj00EOZO3duRZtbb72VG264gUWLFtGjRw8A7rzzTm699VZmzJjB5MmT6d+/PyeffDLz5s2jT58+XHzxxRXb77rrrkycOJF58+YxePBgjj766Fp9/cATTzzBgAEDaNGiRZXrly1bxmGHHcZBBx3E+++/z29+8xuGDBnCm2++Sb9+/WjevDlPPvlkRftRo0YxePBgABo3bswvf/lLPvjgA8aNG8df/vIXfvvb366y/wceeIDx48fz2muvrXbs5s2bM3LkSObPn8/DDz/MddddxwMPPLBKm2effZY333yTv/zlL4wYMYLXX38dgKuvvpo77riDMWPGsHDhQm666SaaNWvGRx99xIEHHsjgwYN5//33ufPOOzn99NOrPP5KXbp0YbvttuPxxx8HsiB9wgknrNKmpnN95plnAHjllVdYvHgxxx57LADvvfce8+bNY+rUqdxwww2r7K9Xr15cccUVDB06lCVLlnDyySdz4okn1mqoan0zFEqSJEnVGDFiBL/5zW+YM2fOKssffvhhttpqK44//njKyso47rjj2HbbbXnwwQcr2px00klsv/32lJWVsckmmwBw8skn06tXL1q3bs03vvENevXqxQEHHEBZWRlHH300L7/8csX2Q4cOpby8nLKyMs4++2yWLl1aq/vT5s6dS+fOnatd//zzz7N48WLOOeccNt10U/bff38GDhzIHXfcAcBxxx1X8XzRokWMGTOG4447DoBddtmFr33ta5SVldGzZ0/+8z//k6effnqV/Z977rm0a9eOzTbbbLVj77vvvnz5y1+mUaNGfOUrX+G4445bbfuLLrqIzTbbjB133JEdd9yRV155Bcju6fzpT3/KNttsQ0Sw4447Ul5ezkMPPUTPnj05+eSTKSsrY+edd+aoo47innvuqfE6nXDCCYwcOZI33niD+fPn079//1XW1+ZcK2vUqBEXX3wxTZo0qfL8Tz31VHr37k2/fv2YNWvWKj2h65OhUJIkSarGDjvswMCBA7n88stXWT5z5syK3r+VevTowYwZMyped+/efbX9dezYseL5Zpttttrr0klZrrrqKvr06UPr1q1p06YNCxYs4IMPPlhjzeXl5cyaNava9TNnzqR79+40avTvKFBa++DBg7nvvvtYunQp9913H1/96lcrzvWtt95i4MCBdOrUiVatWnHeeeetVlNV573S+PHj2W+//ejQoQOtW7fm+uuvX237Tp06VTxv1qxZxTWZNm0avXr1Wm2fU6dOZfz48bRp06bicfvtt/Pee+9VWwfAt771LZ588kmuueYajj/++NXW1+ZcK+vQoQNNmzatsc2pp57KP//5T773ve/RpEmTGts2FEOhJEmSVIOLL76Y3//+96sEvi5dujB16tRV2r377rt07dq14vXafLH42LFjufLKK7n77rv58MMPmT9/Pq1btyaltMZtDzjgAB577DE++uijKtd36dKFadOmrTL5TWnt2223HT169OCRRx5ZZegowGmnnca2227L22+/zcKFC7nssstWq6mm8x48eDCHH34406ZNY8GCBQwbNqxW5wRZ2Jw8eXKVy/fZZx/mz59f8Vi8eDHXXXddjftr1qwZ3/jGN7juuuuqDIW1OdfK1vSeL168mO9///t85zvfYfjw4cybN6/G9g3FUChJkiTVoHfv3hx77LH8+te/rlh2yCGH8NZbbzFq1CiWL1/OXXfdxWuvvcbAgQPXyTEXLVpEWVkZHTp0YPny5YwYMYKFCxfWatvjjz+e7t27c9RRR/HGG2+wYsUK5s6dy2WXXcaYMWPo168fzZo148orr2TZsmU89dRTPPjggwwaNKhiH4MHD+ZXv/oVzzzzDEcfffQqdbVq1YoWLVrwxhtvrDF4VXVe7dq1o2nTprzwwguMGjWq1tuecsop/OQnP+Htt98mpcTf//535s6dy8CBA3nrrbe49dZbWbZsGcuWLePFF1+suBexJpdddhlPP/00PXv2rLLWms61Y8eOdf7+xTPPPJO+ffty4403cuihhzJs2LA6bV9fDIWSJEnSGlx44YWr9LytvJftF7/4BeXl5Vx55ZU89NBD6+w7AA8++GAGDBjA1ltvTY8ePWjatGmNwzJLNWnShCeeeIJtt92WAw88kFatWrHbbrvxwQcf0K9fPzbddFMefPBBHnnkEdq3b8/pp5/OyJEj2XbbbSv2sfJev/3333+Vc7rqqqsYNWoULVu25NRTT62YYKW2fvvb33LhhRfSsmVLRowYwTHHHFPrbc866yyOOeYYDjroIFq1asV3vvMdPv74Y1q2bMnjjz/OnXfeSZcuXejUqRM//vGPWbp06Rr32aVLF/bcc88q163pXIcPH86JJ55ImzZt1jjbKcCf/vQnHn300YpwefXVV/PSSy9x++231+Ls61fUtrt2Q9K3b980YcKE9V3Gaur6hax1+YJVSZKkDc3rr79Onz591ncZ0gatup+jiPhbSqlvbfZhT6EkSZIkFZihUJIkSZIKzFAoSZIkSQVmKJQkSZKkAjMUSpIkSVKBGQolSZIkqcAMhZIkSZJUYIZCSZIkSSowQ6EkSZL0BdezZ0+eeOKJBt+2Id1+++0cdNBB67uM9WbYsGFccskl6+XYZevlqJIkSVJlw1vX8/4X1Lppz549mT17No0bN6ZFixYMGDCAa665hhYtWtRjgevHCy+8wPDhw3nuuedo1KgRvXv35rTTTuPkk09u0DqGDBnCkCFDGvSYNZkyZQpbbLEFO+20Ey+//HLF8g8++IAuXbrQpUsXpkyZssb93Hzzzdx44408++yzNba7/vrr17bkz82eQkmSJKkKDz74IIsXL2bixIm8/PLL/OxnP1vfJa1z48aNY//992efffZh0qRJzJ07l+uuu45HHnmkQetYvnx5gx6vLpYsWcI///nPitejRo1iiy22WKfH+Oyzz9bp/urKUChJkiTVoFOnThx88MFMnDixYtnSpUv54Q9/yOabb07Hjh0ZNmwYH3/8MZD1JA0cOJA2bdrQrl079tprL1asWAHAtGnT+Na3vkWHDh0oLy/njDPOAGDy5Mnsv//+lJeX0759e4YMGcL8+fOrrGfFihVcfvnl9OrVi/Lyco455hjmzZtXsf7WW2+lR48elJeXc+mll9Z4bj/60Y848cQT+fGPf0z79u2JCHbZZRfuvvvuija///3v6d27N+3atePwww9n5syZAJx22mn88Ic/XGV/RxxxBFdffTVARY0tW7Zku+224/77769od/PNN7PHHnvwgx/8gPLycoYPH87NN9/MnnvuWdHmzDPPpHv37rRq1YpddtmFsWPHVqwbPnw4xxxzDCeccAItW7Zk++23Z8KECRXrq7vOADfddBN9+vShbdu2HHzwwUydOrXGa3T88cdzyy23VLweOXIkJ5xwwiptqjvX119/nWHDhjFu3DhatGhBmzZtADjppJM47bTTOOSQQ2jevDl//etfOemkk7jgggsAuOKKK+jXr19FWL7uuuvYfvvt+eSTT2qs9fMyFEqSJEk1mD59Oo888gi9e/euWHbOOefw1ltvMXHiRCZNmsSMGTMYMWIEAL/4xS/o1q0bc+bMYfbs2Vx22WVEBJ999hkDBw6kR48eTJkyhRkzZjBo0CAAUkqce+65zJw5k9dff51p06YxfPjwKuv5zW9+wwMPPMDTTz/NzJkzadu2Lf/1X/8FwGuvvcZpp53GrbfeysyZM5k7dy7Tp0+vcj9Llixh3LhxfPvb36723J988knOPfdc7r77bmbNmkWPHj0qaj7uuOO46667SCkB8OGHH/L4449XrO/Vqxdjx45lwYIFXHTRRQwdOpRZs2ZV7Hv8+PFsueWWzJ49m/PPP3+1Y++6665MnDiRefPmMXjwYI4++uhVQtHo0aMZNGgQ8+fP5/DDD68IfjVd5z/96U9cdtll3HfffcyZM4e99tqL4447rtrzBxg6dCh33nknn332Ga+99hqLFy+mX79+q7Sp7lz79OnD9ddfT//+/Vm8ePEqQX/UqFGcf/75LFq0aJUwDFlYb9KkCT/96U95++23Oe+887jtttto2rRpjbV+XoZCSZIkqQrf/OY3admyJd27d+dLX/oSF198MZAFuBtuuIFf/vKXtGvXjpYtW3Leeedx5513ArDJJpswa9Yspk6dyiabbMJee+1FRPDCCy8wc+ZMfv7zn9O8eXOaNm1aEQZ69+7NgQceSJMmTejQoQNnnXUWTz/9dJV1XX/99Vx66aV069aNJk2aMHz4cO69916WL1/Ovffey8CBA9l7771p0qQJl1xyCY0aVf0n/4cffsiKFSvo3Llztdfg9ttv5z/+4z/46le/SpMmTfjZz37GuHHjmDJlSsV5rezBu/fee+nfvz9dunQB4Oijj6ZLly40atSIY489lq222ooXXnihYt9dunThe9/7HmVlZWy22WarHXvo0KGUl5dTVlbG2WefzdKlS3nzzTcr1u+5554ccsghNG7cmOOPP55XXnkFoMbrfP3113PuuefSp08fysrKOO+885g4cWKNvYXdunVjm2224YknnmDkyJEcf/zxq7VZ07lW5YgjjmCPPfagUaNGq4W9Ro0aMXLkSH79619z+OGH8//+3/9j5513rnF/a8NQKEmSJFXhgQceYNGiRTz11FO88cYbfPDBBwDMmTOHJUuWsMsuu9CmTRvatGnDgAEDmDNnDpD18vTu3ZuDDjqILbfckssvvxzIhjT26NGDsrLV53qcPXs2gwYNomvXrrRq1YqhQ4dWHK+yqVOncuSRR1Ycu0+fPjRu3JjZs2czc+ZMunfvXtG2efPmlJeXV7mftm3b0qhRo1V67yqbOXMmPXr0qHjdokULysvLmTFjBhHBoEGDuOOOO4Cs56t0opiRI0ey0047VdT5z3/+c5VzKq2zKldddRV9+vShdevWtGnThgULFqyyfadOnSqeN2vWjE8++YTly5fXeJ2nTp3KmWeeWVFTu3btSCkxY8aMGms54YQTuPnmm7njjjuqDIVrOteqrOn8e/Zpn2DRAAAgAElEQVTsyX777ceUKVMqeoLri6FQkiRJqsE+++zDSSedVHH/XPv27dlss8149dVXmT9/PvPnz2fBggUsXrwYgJYtW/KLX/yCd955h9GjR3P11Vfzl7/8he7du/Puu+9WOanKeeedR0Twj3/8g4ULF3LbbbdVDMusrHv37jzyyCMVx54/fz6ffPIJXbt2pXPnzkybNq2i7ZIlS5g7d26V+2nWrBn9+/fnf//3f6s99y5duqzSi/bRRx8xd+5cunbtCmRDSO+9916mTp3K+PHjOeqoo4AsfJ166qlcc801zJ07l/nz57PDDjusck4RUe1xx44dy5VXXsndd9/Nhx9+yPz582ndunW116Ty9anuOnfv3p3f/e53q1y7jz/+mN13373GfR511FE8/PDDbLnllmy++earrFvTuVZ3njWdP8DDDz/MuHHj+PrXv86PfvSjGtuuLUOhJEmStAbf//73+fOf/8wrr7xCo0aNOPXUU/nBD37A+++/D8CMGTN47LHHAHjooYeYNGkSKSVat25N48aNadSoEbvtthudO3fmnHPO4aOPPuKTTz7h//7v/wBYtGgRLVq0oHXr1syYMYOf//zn1dYybNgwzj///IqwNmfOHP70pz8B8O1vf5uHHnqIZ599lk8//ZQLL7ywYpKbqlx55ZXcfPPN/PznP68Ij6+88soq9w3+8Y9/ZOLEiSxdupTzzjuPfv360bNnTwB23nln2rdvzymnnMLBBx9cMZHKRx99RETQoUMHAP74xz+uMoPnmixatIiysjI6dOjA8uXLGTFiBAsXLqzVtjVd52HDhvGzn/2MV199FYAFCxZwzz33rHGfzZs358knn+TGG29cbd2azrVjx45Mnz6d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\n",
      "text/plain": [
       "<Figure size 1080x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(15, 8))\n",
    "ax = fig.add_subplot(111)\n",
    "index = np.arange(N)\n",
    "width = 0.35\n",
    "ax.bar(index, ivp_weights[ivp_modified_weights.columns].values[0], width, label='Normal Covariance Matrix')\n",
    "ax.bar(index + width, ivp_modified_weights.values[0], width, label=\"Rescaled Covariance Matrix\")\n",
    "ax.set_xticks(index + width / 2)\n",
    "ax.set_xticklabels(ivp_modified_weights.columns)\n",
    "plt.xlabel('Tickers', fontsize=12)\n",
    "plt.ylabel('Weights', fontsize=12)\n",
    "plt.title('Comparision of IVP Weights after Rescaling Covariances', fontsize=12)\n",
    "plt.legend(fontsize='large')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We observe that rescaling of the variances has led to a rebalancing of the portfolios for all the three strategies. Lets see the differences in the rebalancing:\n",
    "\n",
    "* HRP tries to rebalance the reduction in allocation of one affected investment across the other correlated investments in the cluster which were unaffected by the random shock. So, while allocation for BND goes down, the allocations for CSJ, IEF and LQD go up (These are in the same cluster as BND). At the same time, HRP also increases the allocations for other uncorrelated investments with lower variances.\n",
    "\n",
    "\n",
    "* CLA behaves very erratically to the rescaling. It has actually increased the allocations for BND while HRP reduced it. Due to such an erratic behaviour, CLA tends to be impacted more negatively than HRP when there are such random idiosyncratic shocks.\n",
    "\n",
    "\n",
    "* IVP tends to reduce the allocations for the affected investments and spread their change over the other investments which were unaffected. From the above graph, we see that it reduced allocations for CSJ and BND and then increased the allocations for the other investments irrespective of their correlations. This is because IVP only looks at the individual variances and does not take into account the covariances between 2 investments. This also makes it prone to negative impacts during such idiosyncratic shocks."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Conclusion"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We saw the Hierarchical Risk Parity algorithm in action on a real data of stock prices and also compared it to other classic algorithms like CLA and IVP. Some key takeaways from the exercise were:\n",
    "\n",
    "* The HRP algorithm tries to allocate its weights in a stable manner - as a middle ground between CLA and IVP. \n",
    "\n",
    "\n",
    "* CLA tries to adopt a very conservative, risk-reduction approach and allocates its weights to the top few holdings while giving 0 importance to the other assets in the portfolio. This makes it very sensitive to random industry shocks. **Note that we are using CLA to find the minimum variance solution and these observations are based on that**\n",
    "\n",
    "\n",
    "* IVP tries to allocate uniformly and it does not take into account the covariance and correlations between investments. It focuses on the individual asset variances.\n",
    "\n",
    "\n",
    "* The last question actually confirms the previous points. Rescaling of covariance simulates an idiosyncratic shock in the industry where the covariances between the assets undergo a change which leads to a rebalancing of the portfolios across the 3 different strategies.\n",
    "    * CLA behaves very erratically and becomes prone to much negative impacts during such scenarios.\n",
    "    * HRP tries to rebalance in a stable manner taking into account the investments within the clusters of affected investments and also other uncorrelated investments outside the cluster.\n",
    "    * IVP ignores the covariances and focuses on the individual variances. It spreads the allocations across unaffected investments uniformly irrespective of their correlations.\n",
    "    \n",
    "* Another major difference between CLA and HRP is that the former involves calculating inverse of the covariance matrix while the latter does not. Hence, even small changes in the covariances (e.g. rescaling them) will have a significant impact on CLA allocations as compared to HRP."
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "Raw Cell Format",
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
